首先了解编译过程:
1.预处理阶段
预处理阶段根据放置在文件中的预处理指令来修改源文件的内容
主要包括:
①宏定义指令:如#define a b对于这种伪指令,预编译所要做的时将程序中的所有a用b替换,但是作为字符串常量的a则不被替换
②条件编译指令:如#ifdef,#ifndef,#else,#elif,#endif等,这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对那些代码进行处理
预编译程序根据有关文件,将那些不必要的代码过滤掉
③头文件包含指令:如#include,该指令将头文件中的定义统统都加入到它所产生的输出文件中,以供编译程序对之进行处理
④特殊符号:源程序中出现LINE标识将被解释为当前的行号,FILE则被解释为当前被编译的C源程序的名称。预编译程序对于在源程序中出现的这些字符串将用合适的值进行替换
注:头文件的主要目的就是为了使某些定义可以供不同的C源程序使用,这涉及到头文件的定位即搜索路径问题;
2.语法与语法分析阶段
3.编译阶段
首先编译成纯汇编语句
然后翻译成与CPU相关的二进制码
最后生成各个目标文件(.obj文件)
目的:就是将文本形式