TI中文支持网
TI专业的中文技术问题搜集分享网站

C6672 位定义变量 运算错误

芯片:C6672      仿真器:XDS560V2PLUS      环境:CCS7.3      编译器:7.4.24

定义变量如下:

赋初值0

运算如下:

结果:a=2;b=1;c=2;

提问:

为什么运算b的时候 1+1=1了 而像运算c那样 强制转换一下 结果又对了?

Shine:

改成b=(!Test.bit.BIT0) && (!Test.bit.BIT0)+!Test.bit.BIT1;试试

,

user4428457:

试了 没用啊 好像不是优先级的问题

,

Shine:

可以看一下反汇编窗口的汇编代码是怎么样的?

,

user4428457:

反汇编如下 看不太懂 麻烦帮忙解释一下 谢谢!

,

user1428143:

运算优先级问题。先算加减、再做逻辑&&。强制转换过程实际是调整了计算优先级,先算的逻辑&&,再算的加法。

赞(0)
未经允许不得转载:TI中文支持网 » C6672 位定义变量 运算错误
分享到: 更多 (0)