编译预处理和多文件项目版权所有@陈暂保留所有权利陈哲版权所有陈哲保留所有权利
版 权 所 有 © 陈 哲 保 留 所 有 权 利 版权所有© 陈哲 保留所有权利 编译预处理和多文件项目 陈哲
>编译预处理>宏定义>文件包含>条件编译>多文件项目版权所有@陈哲保留所有权利版权所有陈哲保留所有权利2
版权所有© 陈哲保留所有权利 版权所有 © 陈哲 保留所有权利 2 ➢编译预处理 ➢宏定义 ➢文件包含 ➢条件编译 ➢多文件项目
编译预处理>编译预处理:在编译之前对源程序进行处理,生成扩展的源程序>指令种类:宏定义#define1文件包含#include条件编译#if-#else-#endif服权所有@陈替保留所有权利>1语法:#开头,语句尾不加分号3
版 权 所 有 © 陈 哲 保 留 所 有 权 利 编译预处理 ➢编译预处理:在编译之前对源程序进行 处理,生成扩展的源程序。 ➢指令种类: ◦宏定义 #define ◦文件包含 #include ◦条件编译 #if-#else-#endif ➢语法:#开头,语句尾不加分号。 3
宏定义宏体可省略表示空文本>不带参数的宏定义o语法:#define宏名[宏体]。宏名是一个标识符宏体是任意文本语义:在编译预处理阶段将代码中出现的宏名替换为宏体中的文本。版权所有@陈暂保留所有权利4
版 权 所 有 © 陈 哲 保 留 所 有 权 利 宏定义 ➢不带参数的宏定义 ◦语法:#define 宏名 [宏体] ◦宏名是一个标识符 ◦宏体是任意文本 ◦语义:在编译预处理阶段将代码中出现 的宏名替换为宏体中的文本。 4 宏体可省略, 表示空文本
>例:#include <stdio.h>#define ONE 1int mainOint x = l;if (x == ONE)printf("oneln");.版权所有@陈暂保留所有权利0;returnaftermacro expansion1)if(x ==printf("oneln");5
版 权 所 有 © 陈 哲 保 留 所 有 权 利 ➢例: #include <stdio.h> #define ONE 1 int main() { int x = 1; if (x == ONE) printf("one\n"); return 0; } 5 // after macro expansion if (x == 1) printf("one\n");