本文讨论了C程序的完整编译过程,分别讲述了预处理、编译、汇编、链接各阶段完成的编译任务。然后通过一个编译实例,探讨了各阶段输出的文件。
编译和链接前面了解C程序结构,也编写了第一个C程序源代码,但计算机并不能直接执行C程序源代码。因为C语言是高级语言,计算机不能识别高级语言编写的代码,还需要把写好的C程序源代码转换为计算机能识别的机器语言代码,这个过程称为C程序的编译过程。编译过程如图1-7所示。
图1-7C程序编译过程
从图1-7可以看出,C程序编译过程分为四个阶段:第一阶段是预处理阶段;第二阶段是编译阶段;第三阶段是汇编阶段;第四阶段是链接阶段。执行这四个阶段的程序(预处理器、编译器、汇编器、和链接器)一起构成了C语言的编译系统。
预处理阶段:预处理阶段主要用于处理源文件中的预处理指令,并根据指令对源代码进行修改和补充。例如:“#include”指令将头文件的内容补充到源文件内;“#define”指令用于宏定义,通过宏定义可以进行条件编译和内容替换。
编译阶段:编译阶段主要用于对预处理后的文件进行词法和语法分析,并将其翻译成与源代码等价的汇编代码。
汇编阶段:汇编阶段将编译输出的汇编代码转换为机器代码,机器代码也称为目标代码,该代码与计算机硬件相关。
链接阶段:链接阶段将多个目标代码文件、函数库文件链接成可执行文件。
订阅解锁TA的全部专属内容转载请注明:http://www.0431gb208.com/sjslczl/7709.html