TUDOU2015 发表于 2015-5-27 08:58:25

关于MPLAB X IDE 的编译器处理各种运算符的优先级的问题

if((b&0x8000)==0x8000)   中(b&0x8000)的括号是否必须加上,不同的编译系统的编译器是否处理的不一样,严格意义上 if((b&0x8000)==0x8000) 是否等效if(b&0x8000==0x8000) ,哪位高手给正解

tdh03z 发表于 2015-5-27 20:26:54

肯定符合C语言的运算符优先级,要不然各个编译器都有自己的优先级规则,程序移植就麻烦了

lcofjp 发表于 2015-5-27 20:35:00

楼主好好复习一下C语言的运算符优先级。 == 比 &高,在啥编译器上都是这样,绝对没有移植的问题。括号是必须的,有和没有是不同的语义。

abutter 发表于 2015-5-27 21:09:50

从 gcc 来的,你先核对一下 C 语言规范。
页: [1]
查看完整版本: 关于MPLAB X IDE 的编译器处理各种运算符的优先级的问题