单选题

执行下面程序后,其输出结果是(     )。

【正确答案】 A
【答案解析】

这是宏定义的一种,它可以根据是否已经定义了一个变量来进行分支选择,一般用于调试等等 实际上确切的说这应该是预处理功能中三种(宏定义,文件包含和条件编译)中的一种——条件编译。C语言在对程序进行编译时,会先根据预处理命令进行“预处理”。C语言编译系统包括预处理,编译和链接等部分。

#ifndef X
//先测试x是否被宏定义过
#define x
//如果没有宏定义下面就宏定义x并编译下面的语句
...
#endif

//如果已经定义了则编译#endif后面的语句条件指示符#indef检查预编译常量在前面是否已经被宏定义。如果在前面没有被宏定义则条件指示符的值为真,于是从#inde倒#endif之间的所有语句都被包含进来进行编译处理。相反,如果#ifndef指示符的值为假,则它与#endi指示符之间的行将被忽略。条件指示符#ifndef 的最主要目的是防止头文件的重复包含和编译。