第19课 编译过程简介

Posted wanmeishenghuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第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文件中定义的宏也被展开了。

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

编译:

技术分享图片

 

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

技术分享图片

 

编译结果如下:

技术分享图片

 

汇编:

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

技术分享图片

 

汇编指令如下:

技术分享图片

 

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

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

链接:

技术分享图片

 

 

小结:

技术分享图片

 

以上是关于第19课 编译过程简介的主要内容,如果未能解决你的问题,请参考以下文章

第19课 编译过程简介

第19课 - 路径搜索的综合示例

第20课 链接过程简介

第20课 链接过程简介

第19课 使用存储过程

第19课 - 对象的构造(下)