C语言---编译和链接

郭小宝耶 2024-10-05 17:05:02 阅读 96

1、编译环境和运行环境

在ANSI C的任何一种实现中,存在两个不同的环境:

第一种:翻译环境,在这个环境下,源代码被转换为可执行的机器指令(二进制指令);

第二种:执行环境,它用于实际执行代码。

2、翻译环境

                翻译环境是由编译和链接两个大的过程组成的,而编译又可以分解为:预处理(预编              译)、编译、汇编三个过程。

  2.1、预处理(预编译)

在预处理阶段,源文件(.c)和头文件(.h)会被处理成为  .i  的文件。

命令:

  2.2、编译

          编译的过程就是将预处理后的文件进行一系列:词法分析、语法分析、语义分析及优化,生       成相应的汇编代码文件。

命令:

例子分析

  (1)词法分析

            将源代码程序被输入扫描仪,扫描仪的任务是简单的进行词法分析,把代码中的字符分割       成一系列的记号(关键词、标识符、字面量、特殊字符等)。

      16个字符:

       

  (2)语法分析

           语法分析器是对扫描产生的记号进行语法分析,从而产生语法树,这些语法树是以表达式         为节点的数。

  (3)语义分析

         语义分析器来完成语义分析,即对表达式的语法层面分析。编译器所能做的分析是语义的静     态分析。静态语义分析通常包括声明和类型的匹配,类型的转换等。

2.3、汇编

      汇编器是将汇编代码转变成机器可执行代码(二进制指令),每一个汇编语句几乎都对应一条机器指令。

        命令:

2.4、链接

      链接的过程主要包括:地址和空间分配,符号决议和重定位等这些步骤。

      链接解决的是一个项目中多文件、多模块之间相互调用的问题。

3、运行环境

多多指教啦!!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。