_Bool数据类型为C99

时间:2014-07-07 03:57:47

标签: c boolean c99

C编程语言的C99标准将_Bool数据类型定义为另一种数据类型的宏(因为该语言无法处理类型安全布尔值)。

_Boolunsigned charunsigned int或其他一些数据类型的宏吗?

3 个答案:

答案 0 :(得分:9)

根据C标准,

_Bool是一个单独的整数类型。 _Bool是C语言的关键字

  

2声明为_Bool类型的对象足以存储值   0和1。

_Bool是无符号整数类型。

  

类型_Bool和对应的无符号整数类型   标准有符号整数类型是标准的无符号整数类型。

应该提到

  

- _Bool的等级应小于所有其他标准的等级   整数类型。

答案 1 :(得分:4)

_Bool类型是标准C99中出现的新类型 它是无符号整数类型 它的值范围必须能够保持值0和1 _Bool的值范围包含在任何其他无符号整数类型的值范围内。

使用关键字_Bool代替bool,因为标准的基本原理假设现有实践(1999年之前)存在标识符bool的几种不同用法(作为宏或作为typedef)。

标准标题<stdbool.h>将宏bool定义为_Bool的含义 此外,(宏)常量truefalse分别定义为1和0。

虽然目的是使用单词bool,但程序员可以选择使用或不使用标准类型_Bool或者很好地给出他自己的bool定义。

答案 2 :(得分:1)

C99定义了一种新类型_Bool

它还定义了一个新的头文件stdbool.h,其中包含以下行:

#define bool _Bool