位运算符优先级的陷阱!!(同一地方跌倒K次后记...)
时间:2010-03-10 来源:fantasy86
使用位运算符时,一不留神就会掉进它的陷阱,不管你是用C,C++,还是Java。
位运算符的优先级实在是太低了!
if(code&0x03 == 1) { |
看上去多正常啊!可是,&的优先级比==低!所以是先进行了后面的比较才进行的位与。结果...
value = lowbyte + highbyte<<8; |
高位字节左移8位,加上低位字节,组合成双字节整数,有问题吗?移位运算符<<优先级比+低,所以是先进行了lowbyte+highbyte, 然后左移8位...
所以,还是给位运算都加上括号吧!
附:《C陷阱与缺陷》中的相关内容
相关阅读 更多 +