int data = 0x0; if(data & 0x2 == 0) { printf("1\n"); } else { printf("2\n"); }
这段代码太简单了,简单到不需要特别在意。
但是一不小心就踩坑了。
==
的优先级比 &
大,所以运行出来的是“2”。
![]() | 1 gauzung 2024-09-25 20:46:48 +08:00 我没有太关心运算符优先级, 但是写到这种代码的时候, 都会留点心加括号, 一是确保结果是我所想的(不管你优先级多大, 都不可能比括号大), 二是增加代码可读性 |
![]() | 2 tool2dx 2024-09-25 21:01:09 +08:00 via Android clang 会报警告,该更新编译器了。 |