int a = 8;
if (a==8)
printf("x");
else
printf("y");
虽然a
等于8
,但它会输出y
。
答案 0 :(得分:5)
上面的代码始终打印x
。如果您的代码打印了其他内容,那么您在问题中省略了重要信息。
要了解可能是什么,请尝试以下方法:
在#undef a
之前插入int a = 8;
,以确保没有与代码混淆的C预处理器宏。
交换条件以查看a
是否真的符合您的期望:
if( 8 == a )
这个小技巧还可以防止您发生意外分配错误(if( a = 8 )
)