码迷,mamicode.com
首页 > 其他好文 > 详细

第19课 编译过程简介

时间:2018-08-26 11:59:30      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:img   image   例程   auto   信息   height   文件中   spl   font   

初识编译器:

技术分享图片

 

 

 

技术分享图片

 

预编译:

技术分享图片

 

示例程序:

源文件:

 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课 编译过程简介

标签:img   image   例程   auto   信息   height   文件中   spl   font   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!