```c
int data = 0x0;
if(data & 0x2 == 0)
{
        printf("1\n");
} else
{
        printf("2\n");
}
```


这段代码太简单了,简单到不需要特别在意。

但是一不小心就踩坑了。

`==` 的优先级比 `&` 大,所以运行出来的是“2”。
举报· 36 次点击
登录 注册 站外分享
2 条回复  
gauzung 小成 2024-9-25 20:46:48
我没有太关心运算符优先级, 但是写到这种代码的时候, 都会留点心加括号, 一是确保结果是我所想的(不管你优先级多大, 都不可能比括号大), 二是增加代码可读性
tool2dx 初学 2024-9-25 21:01:09
clang 会报警告,该更新编译器了。
返回顶部