再一次遇见你,罪恶啊

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

RX_Sbuff[7] & BIT4 == BIT4

本意是:

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

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

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

分享到: 更多
版权申明:

本站保留所有原创文章的版权,本站地址:奔跑的博客[http://www.elecbench.com]

原创文章转载时请注明出处,并添加文章所在页面的链接:http://www.elecbench.com/%e5%86%8d%e4%b8%80%e6%ac%a1%e9%81%87%e5%88%b0%e4%bd%a0%ef%bc%8c%e7%bd%aa%e6%81%b6%e5%95%8a/

本站所有 2010年3月4日 以后发表、未标明为“转载”的文章均是本站原创。

发表评论


(设置自己的个性头像)

*

申请属于你的免费顶级域名