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

And*_*eas 1 c boolean

布尔运算的结果是保证为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)

Yu *_*Hao 6

是的,&&运算符(或任何逻辑运算符)的结果是int值为1或的值0.

C11§6.5.13逻辑AND运算符

&&运营商将产生1,如果两个操作数的比较不等于0; 否则,它会产生0.结果有类型int.