通常情况下,C语言程序的所有行都要进行条件编译,但有时可能希望程序的某部分在满足一定情况下进行编译,或者在满足一定条件下不进行编译,这就是条件编译。
条件编译有如下三种形式:
1.
#ifdef 标识符
程序段1
#else
程序段2
#endif
其中“标识符”为宏名,该宏名在此前可以定义,也可以没有定义;“程序段1”和“程序段2”是由语句或预处理命令组成的程序序列。
该种格式的功能:如果标识符已被 #define 命令定义过,则对程序段1进行编译;否则对程序段2进行编译。如果没有程序2(为空),本格式中的 #else 可以没有,即可以写为:
#ifdef 标识符
程序段
#endif
2.
3.
#ifndef 标识符
程序1
#else
程序段2
#endif
#if 常量表达式
程序段1
#else
程序段2
#endif