预处理程序提供了条件编译的功能。可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。条件编译有3中形式:
1、第一种形式
#ifdef 标识符
程序段1
#else
程序段2
#endif
其功能是,如果标识符已经被#define命令定义过则对程序段1进行编译;否则对程序段2进行编译。如果没有程序段2(它为空),本格式中#else可以没有,即可以写为:
#ifdef 标识符
程序段 #endif
2、第二种形式
#ifndef 标识符
程序段1
#else
程序段2
#endif
与第一种的区别是将“ifdef”改为“ifndef”,功能与第一种形式正好相反。
3、第三种形式
#if 常量表达式
程序段1
#else
程序段2
#endif
其功能是,如果常量表达式的值为真(非0),则对程序段1进行编译,否则对程序段2进行编译。