再一次遇见你,罪恶啊

又一次遇到“运算优先级”导致的问题,幸亏在代码测试阶段就发现了问题。如下:

RX_Sbuff[7] & BIT4 == BIT4

本意是:

RX_Sbuff[7] & BIT4 按位相与后再与 BIT4 比较是否相等。

但实际的结果是:先执行   BIT4 == BIT4 ,原因是 == 运算符优先级高于 & 运算符,真该死,这已经不是第一次遇到这个问题了。以为自己记住了优先级了。

还是那条规定,所有运算表达式,统统加上括号。切记切记!

发表评论

邮箱地址不会被公开。 必填项已用*标注