为什么控件进入"其他"部分?

use*_*308 -10 c

int a = 8;

if (a==8)
    printf("x");
else 
    printf("y");
Run Code Online (Sandbox Code Playgroud)

虽然a等于8,但它输出y.

Aar*_*lla 5

上面的代码总是打印出来x.如果您的代码打印了其他内容,那么您在问题中省略了重要信息.

要了解可能是什么,请尝试以下方法:

  1. 在插入#undef a之前int a = 8;确保没有与代码混淆的C预处理器宏.

  2. 交换条件,看看你a是否真的符合你的期望:

    if( 8 == a )
    
    Run Code Online (Sandbox Code Playgroud)

    这个小技巧也可以防止你意外分配bug(if( a = 8 ))

  • 也应该#undef if,else和printf只是为了安全... (3认同)