布尔运算的结果是保证为1还是0?
我正在编程一个微控制器并需要将引脚设置为1或0,并且想知道我是否可以缩短代码:
isRunning = isStarted && !isSleeping;
_PBH0 = isRunning ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
对此:
isRunning = isStarted && !isSleeping;
_PBH0 = isRunning;
Run Code Online (Sandbox Code Playgroud)
是的,&&运算符(或任何逻辑运算符)的结果是int值为1或的值0.
C11§6.5.13逻辑AND运算符
该
&&运营商将产生1,如果两个操作数的比较不等于0; 否则,它会产生0.结果有类型int.