C语言条件判断#if 0 #elif 1 #else #endif 到底执行哪个??

#if 0
AAA
#elif 1
BBB

#else
CCC

#endif

到底执行哪个??

#if 0 //0即假,不执行
AAA
#elif 1 //1即真,于是BBB就执行(后面的CCC就不执行了)
BBB

#else
CCC

#endif
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-29
#if #else是预编译宏指令。
#if 条件
语句1
#else
语句2
如果条件为真,编译语句1,如果条件为假,编译语句2。
在程序运行中也是如此。追问

我知道 上面#if 0=假 #elif 1=真 #else=无意义 是这样吗?

第2个回答  2015-09-29
代码中使用的是预编译宏指令
这里的代码只会执行BBB,
其他不会执行。

条件判断指令如下:
if(x<1){
printf("AAA\n");}
else if(x>1 && x<2){
printf("BBB\n");}
else{
printf("CCC\n");}本回答被提问者采纳
第3个回答  2017-09-29
#if 这个if先进行判断if后面的条件如果为真也即是1,那么就编译if后面到#else的代码段,如果if后面为0,也就是假,那么编译#else到#endif之间的代码段
第4个回答  2015-09-29
如果为0就执行aaa为1就执行bbb否则就执行ccc