预处理指令-条件编译 宏

条件编译:

一般情况下,源程序中的所有行都参加编译,但是有时希望对部分源程序行只在满足一定条件下才编译,也就是对这部分源程序行指定编译条件:

测试存在:

#ifdef  标识符
程序段1
#else
程序段2
#endif

//当标识符存在时就编译程序段1不然就是2

测试不存在

#ifndef 标识符
程序段1
#else
程序段2
#endif

根据表达式定义:

#if 表达式
程序段1
#else
程序段2
#endif
//当表达式值为真时就编译程序段1
//为假就程序段2

特殊宏定义

__FILE__ 宏所在文件的源文件名

__LINE__ 宏所在的行号

__DATA__ 代码编译的日期

__TIME__ 代码编译的时间

 

宏常量

#define aaa 100

定义后任何作用域都可以使用

使用undef aaa可以卸载掉宏