int a = 8;
if (a==8)
printf("x");
else
printf("y");
Run Code Online (Sandbox Code Playgroud)
虽然a等于8,但它输出y.
上面的代码总是打印出来x.如果您的代码打印了其他内容,那么您在问题中省略了重要信息.
要了解可能是什么,请尝试以下方法:
在插入#undef a之前int a = 8;确保没有与代码混淆的C预处理器宏.
交换条件,看看你a是否真的符合你的期望:
if( 8 == a )
Run Code Online (Sandbox Code Playgroud)
这个小技巧也可以防止你意外分配bug(if( a = 8 ))