位运算优先级!!!

最近新接手一个项目,代码风格偏纯C的风格,所以在熟悉代码的时候按照项目组的代码规范对代码进行相应的修改,但悲剧出现了。。。

比如下面的代码

if(alarm_info->_breach_reason&4)

{
//dosomething;
}
按照代码规范,顺手改为如下代码
if(0!=alarm_info->_breach_reason&4)
{

//dosomething;

}
突然就发现该判断失去了作用!!!原因相信大家也看出来了其实‘!=’的优先级是要高于‘&’的。这样就导致只要alarm_info->_breach_reason不为0,判断永远都是真的。。。
 
posted @ 2013-11-06 14:31  玩笑528  阅读(435)  评论(0编辑  收藏  举报