C99的Bool数据类型(_B)

svgewumm  于 2023-06-28  发布在  其他
关注(0)|答案(3)|浏览(163)

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

ztyzrc3y

ztyzrc3y1#

_Bool是一个独立的整数类型,符合C标准。_Bool是C语言的一个关键字
2.声明为_Bool类型的对象足够大,可以存储值0和1。
_Bool是无符号整数类型。
type _Bool和对应于标准有符号整数类型的无符号整数类型是标准无符号整数类型。
还有一点需要说明

  • _Bool的秩应小于所有其他标准整数类型的秩。
2vuwiymt

2vuwiymt2#

_Bool类型是标准C99中出现的新类型。
它是一个无符号整数类型。
它的取值范围必须能够保持0和1的值。
_Bool的取值范围包含在任何其他无符号整数类型的取值范围中。
使用关键字_Bool而不是bool,因为标准的基本原理假设在现有实践中(1999年之前)存在标识符bool的几种不同用途(作为宏或typedef)。
标准标头<stdbool.h>将宏bool定义为精确的_Bool
此外,(宏)常数truefalse分别被定义为1和0。
虽然意图是使用单词bool,但程序员可以选择使用或不使用标准类型_Bool,也可以给予自己对bool的定义。

wnrlj8wa

wnrlj8wa3#

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

#define bool _Bool

相关问题