C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 条件赋值为布尔值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在C中模拟布尔值可以这样做:
int success;
success = (errors == 0 && count > 0);
if(success)
   ...

使用stdbool.h可以完成以下操作:

bool success;
success = (errors == 0 && count > 0) ? true : false;
if(success)
   ...

据我所知,逻辑和比较运算符应返回1或0.
此外,应定义stdbool.h常量,以便true == 1和false == 0.

因此,以下应该工作:

bool success;
success = (errors == 0 && count > 0);
if(success)
   ...

它确实适用于我测试过的编译器.但是假设它是可移植代码是否安全? (假设存在stdbool.h)

由于bool是内部类型,C编译器的情况是否不同?

解决方法

@H_801_22@ 可以安全地假设.在C99中,转换为_Bool类型后,所有非零值都将转换为1.这将在C99​​标准的6.3.1.2节中介绍.等式和关系运算符(例如==,> =等)保证也会产生1或0.这将在6.5.8和6.5.9节中描述.

对于C,bool类型是一个真正的布尔类型,其中值被转换为true或false而不是1或0,但是仍然可以安全地将==操作等的结果分配给bool并期望它工作,因为关系运算符和比较运算符无论如何都会导致bool.当true转换为整数类型时,它将转换为1.

大佬总结

以上是大佬教程为你收集整理的c – 条件赋值为布尔值全部内容,希望文章能够帮你解决c – 条件赋值为布尔值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。