预处理指令
1.C语言源代码的编译过程
C编译器把源代码编译成可执行程序可分为以下步骤:
(1)预处理
处理代码中的预处理指令(以#开头的代码)
gcc -E xxx.c -o xxx.i
(2)编译
将源代码编译成汇编
gcc -S xxx.i -o xxx.s
gcc -S xxx.c -o xxx.s
(3)汇编
将汇编代码编译成目标文件(机器码)
gcc -c xxx.s -o xxx.o
gcc -c xxx.i -o xxx.o
gcc -c xxx.c -o xxx.o
(4)链接
将目标文件(可能有多个)链接成可执行程序
gcc xxx.o yyy.o… -o xxx
gcc xxx.c yyy.c… -o xxx
2.预处理指令的分类
可以分为三类:宏定义 条件编译 包含头文件
3.宏定义
#define 预处理指令可以定义宏,宏名应该大写
(1)宏可以给数字起名字
语法:
#define 宏名 数字
在代码中使用宏在预处理阶段将被替换成他所代表的内容
宏定义和const常量有相似之处
可以使用宏代表一个在编写程序时还不知道的数字或者以后可能变化的参数
注:可以定义一个宏不代表任何内容
1.宏名和后面代表的内容之间不要写"="
2.宏定义后面不要写分号
(2)宏可以给计算公式(代码)起名字
由于宏的处理是纯粹的字符替换,所以宏代表表达式时,应该加上括号
#define ADD (3+