第19课 编译过程简介

初识编译器:

预编译:

示例程序:

源文件:

 1 #include "19-1.h"
 2 
 3 // Begin to define macro
 4 
 5 #define GREETING "Hello world!"
 6 
 7 #define INC(x) x++
 8 
 9 // End
10 
11 int main()
12 {   
13     p = GREETING;
14     
15     INC(i);
16     
17     return 0;
18 }

头文件:

 1 /*
 2 
 3     This is a header file.
 4     
 5 */
 6 
 7 
 8 char* p = "Delphi";
 9 
10 int i = 0;

执行预编译命令:

得到的中间文件如下:

预处理过后,注释被删掉了,7和9行的全局变量也直接被复制过来了,1-6行为需要传递给后续编译器的信息。我们在c文件中定义的宏也被展开了。

预编译其处理之后就该执行真正的编译了。

编译:

编译过程主要对源程序进行翻译,翻译成汇编代码。调用编译模块进行编译,如下:

编译结果如下:

汇编:

编译过后就是汇编的过程:

汇编指令如下:

汇编之后生成了目标文件,但是它并不是一个可执行文件。

汇编之后还需要进行链接。

链接:

小结:

原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9536416.html