C中 以“#”开头的预处理命令。 包括 #include, #define等
无参宏:
#define 标示符 字符串(常量、表达式、格式串)
#defin M 10
有参宏 #define SUM(a) a+a
SUM(3) //不仅要a+a替换,而且还要把实参3带入到字符串中
xxx
{
…
int result = SUM(3);
printf("result=%d\n",result); //6
…
}
注意:预处理指令,经常写在函数之前
宏替换
源程序在编译之前,由预处理程序对我们写的源代码进行处理:会把源代码中所有出现 宏名 的地方一律使用 宏的字符串 去替换
条件编译
发生在预处理阶段,在编译之前做的事情
核心:根据条件编译指定的代码
条件不同,编译的部分也不同,生成的目标文件也不一样
1) #if #elif #else #endif
2)#ifdef 用来判断某个宏是否定义
#ifdef 检测宏是否定义,如果定义了 返回true
#ifndef 检测宏是否定义,如果没有定义,返回true
|
|