2022年C程序的编译过 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年C程序的编译过 .pdf》由会员分享,可在线阅读,更多相关《2022年C程序的编译过 .pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、C 程序的编译过程编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。C 源程序头文件 预编译处理(cpp)编译程序本身 优化程序 汇编程序 链接程序-可执行文件1.编译预处理读取 c 源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理 析 伪指令主要包括以下四个方面(1)宏定义指令,如#defineNameTokenString,#undef等。对于前一个伪指令,预编译所要做的是将程序中的所有Name 用 TokenString替换,但作为字符串常量
2、的Name则不被替换。对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif,等等。这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉(3)头文件包含指令,如#includeFileName或者#include等。在头文件中一般用伪指令#define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。采用头文件的目的主要是为了使某些定义可以供多个不同的C 源程序使用。因为在需要用到这些定义的C 源程序中
3、,只需加上一条#include语句即可,而不必再在此文件中将这些定义重复一遍。预编译程序将把头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理。包含到 c 源程序中的头文件可以是系统提供的,这些头文件一般被放在/usr/include目录下。在程序中#include它们要使用尖括号()。另外开发人员也可以定义自己的头文件,这些文件一般与c 源程序放在同一目录下,此时在#include中要用双引号()。(4)特殊符号,预编译程序可以识别一些特殊的符号。例如在源程序中出现的LINE 标识将被解释为当前行号(十进制数),FILE 则被解释为当前被编译的C 源程序的名称。预编译程
4、序对于在源程序中出现的这些串将用合适的值进行替换。预编译程序所完成的基本上是对源程序的“替代”工作。经过此种替代,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,但内容有所不同。下一步,此输出文件将作为编译程序的输出而被翻译成为机器指令。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 4 页 -2.编译阶段经过预编译得到的输出文件中,将只有常量。如数字、字符串、变量的定义,以及C语言的关键字,如main,if,等等。预编译程序所要作得工作就是通过词法分析和语法分析,在确认所有的指令都符合语法规则之后,将其翻译成等价的中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C程序的编译过 2022 程序 编译
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内