编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。
编译的完整过程:C源程序-- >预编译处理 ( .c )-- >编译、优化程序( .s、 .asm)-- >汇编程序 ( .obj、 .o、 .a、 .ko )-- >链接程序( .exe、 .elf、 .axf等)
编译的完整过程:C源程序-- >预编译处理 ( .c )-- >编译、优化程序( .s、 .asm)-- >汇编程序 ( .obj、 .o、 .a、 .ko )-- >链接程序( .exe、 .elf、 .axf等)
1. 编译预处理
读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理
伪指令主要包括以下四个方面:
(1)宏定义指令,如#define Name TokenString,#undef等。
对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替