【发布时间】:2013-06-19 17:47:34
【问题描述】:
我有这段代码,但无法理解输出。有人可以帮助了解行为
#include<stdio.h>
int main(){
int a =1;
#if(a==0)
printf("equal");
#else if
printf("unequal");
#endif
return -1;
}
输出结果为 equal。对我来说很奇怪。
此外,如果我将if 条件更改为a==2,则输出为unequal
如果我尝试在“if”块中打印“a”的值,类似于
#if(a==0)
printf("value of a: %d",a);
输出结果为 value of a: 1
请有人解释一下输出。
【问题讨论】:
-
您知道 C 预处理器是什么以及它是如何工作的吗?我推荐 Kernighan,Ritchie,The C Programming Language,第 2 版作为任何潜在 C 程序员的必读。
标签: c c-preprocessor