我正在读一本有关C的书。它说C99添加了一个数据类型_Bool。它基本上是一个整数,但只存储0或1。现在我不明白为什么需要这种数据类型。我们已经有了布尔,它隐式转换为int,反之亦然。所以有人可以告诉我这种数据类型有用的情况。
PS:C ++似乎不支持这样的数据类型所看到这里。
#include <iostream>
using namespace std;
int main() {
// your code goes here
_Bool b = false;
if(b == 0)
printf("FALSE");
else
printf("TRUE");
return 0;
}
它说C99添加了一个变量_Bool
不,C99添加了一个称为的内置类型_Bool
,其值可以为0
或1
。标头<stdbool.h>
定义了宏,这些宏在其中bool
扩展为_Bool
,false
to0
和true
to 1
。
另一方面,C ++具有一个称为的内置类型bool
,该类型可以具有true
和的值false
。为了兼容性,C ++ 11指定stdbool.h
应该存在,但为空。(某些C编译器提供了C ++bool
作为C99之前的扩展。)
新增C99的目的是提供与C ++相同的功能,但不会使旧的C89代码无效(此处可以使用纯文本bool
作为名称)。在我看来,他们提出的宏解决方案并不理想,并且确实很少见使用布尔类型的C代码,而在C ++中却普遍使用它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句