Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
int a = 8; if (a==8) printf("x"); else printf("y");
虽然a等于8,但它输出y。
a
8
y
上面的代码总是打印x. 如果您的代码打印了其他内容,那么您在问题中省略了重要信息。
x
要找出可能是什么,试试这个:
#undef a在之前插入int a = 8;以确保没有与代码混淆的 C 预处理器宏。
#undef a
int a = 8;
交换条件以查看是否a真的是您所期望的:
if( 8 == a )
这个小技巧还可以防止你意外分配错误(if( a = 8 ))
if( a = 8 )