【问题标题】:What's the purpose of _Bool in C99? [duplicate]C99中_Bool的目的是什么? [复制]
【发布时间】:2014-05-24 08:13:02
【问题描述】:

至于stdbool.h,我可以看到有些人希望拥有truefalse 的常量以及一个名为bool 的类型,如果只是为了清楚起见(尽管我个人并不是其中之一) .

但是,实际的_Bool 类型的用途是什么?为什么不直接将 bool 类型定义为 int (无论如何,这就是实际布尔表达式的计算结果)?或者 char 如果大小是一个问题。

它是否允许编译器做它不能用ints 做的事情?它是否提供某种类型安全?

【问题讨论】:

  • @alk:当您已经关闭问题时,我是如何发布答案的?!
  • @alk:谢谢。我以为我正确地搜索了这个问题,但我似乎还是没能找到它。
  • @Mehrdad:你似乎比我至少领先一秒。
  • @alk:另一方面,在我看来,这个问题的答案与我的问题完全不符。我不知道为什么接受的答案被接受了,因为它没有提到_Bool 的效用,只是说如果bool
  • @alk:不好意思,估计是真的被“提到”了,再看答案;更准确地说,它不是答案的重点(更多地关注与 C++ 的相似之处),但更像是顺便提到的。

标签: c c99 stdbool


【解决方案1】:

我认为(但我不确定)原因是很多人已经在他们的项目中定义了 bool,而将 bool 定义为原始类型会破坏此类代码。

【讨论】:

  • 谢谢,但这不是我要问的。我不是想知道为什么 bool 没有被定义为原始类型,而是为什么感觉需要一种新的原始类型。
  • @Dolda2000:你问为什么bool 有用吗?
  • 不,我在问为什么 _Bool 是有用的,而不是预先存在的数字数据类型,但我已经在 cmets 中得到了答案,通过 alk。
猜你喜欢
  • 2014-02-20
  • 2012-10-25
  • 2013-08-13
  • 1970-01-01
  • 2020-02-27
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
相关资源
最近更新 更多