芯片: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:
运算优先级问题。先算加减、再做逻辑&&。强制转换过程实际是调整了计算优先级,先算的逻辑&&,再算的加法。
TI中文支持网





![AM6442: [IPC RPMSG] Message send to remote core 5 @ 16 end point truncated due to lack of space in vring buffer !!!-TI中文支持网](https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_DSP_pastedimage1753265713483v1.jpg)