C中布尔运算1或0的结果是?

时间:2013-09-19 08:07:58

标签: c boolean

布尔运算的结果是保证为1还是0?

我正在编程一个微控制器并需要将引脚设置为1或0,并且想知道我是否可以缩短代码:

isRunning = isStarted && !isSleeping;
_PBH0 = isRunning ? 1 : 0;

到此:

isRunning = isStarted && !isSleeping;
_PBH0 = isRunning;

2 个答案:

答案 0 :(得分:6)

是的,&&运算符(或任何逻辑运算符)的结果是int,其值为10

  

C11§6.5.13逻辑AND运算符

     

如果&&运算符的两个操作数都不等于1,则0运算符将产生0;否则,它会产生int。结果的类型为{{1}}。

答案 1 :(得分:2)

事实上,您可以减少到_PHB0 = (isStarted && !isSleeping);