条件编译 预处理
#ifdef:
#ifdef 标识符
程序段1
#else
程序段2
#endif
功能是:如果标识符已被 #define命令定义过则对程序段1进行编译;否则对程序段2进行编译。如果没有程序段2(为空)。
代码例子:
#ifdef MAX
printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#else
printf("\40: The lower one is %d\n",MINIMUM(a,b));
#endif
#ifndef:
#ifndef 标识符
程序段1
#else
程序段2
#endif
功能是:如果标识符未被#define命令定义过则对程序段1进行编译, 否则对程序段2进行编译。这与#ifdef的功能正相反。
代码例子:
#ifndef MIN
printf("\40: The lower one is %d\n",MINIMUM(a,b));
#else
printf("\40: The larger one is %d\n",MAXIMUM(a,b));
#endif
#if :
#if 常量表达式
程序段1
#else
程序段2
#endif
功能是:如常量表达式的值为真(非0),则对程序段1 进行编译,否则对程序段2进行编译。因此可以使程序在不同条件下,完成不同的功能。