#include
#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。请参阅下一个问题以获得更好的理解。
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。