C |宏与预处理器|问题2

null

#include <stdio.h>
#if X == 3
#define Y 3
#else
#define Y 5
#endif
int main()
{
printf ( "%d" , Y);
return 0;
}


以上程序的输出是什么? (A) 3. (B) 5. (C) 3或5取决于X的值 (D) 编译时错误 答复: (B) 说明: 在第一种情况下,输出似乎是编译时错误,因为尚未定义宏X。在C语言中,如果未定义宏,则预处理器默认为其分配0。因此,控件转到条件else部分并打印5。请参阅下一个问题以获得更好的理解。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享