在C++中使用布尔而不是字符有什么意义?

In C++ What's the point of using bool instead of char?

本文关键字:字符 什么 C++ 布尔      更新时间:2023-10-16

sizeof(char) 和 sizeof(bool) 都等于 1(在我的编译器/系统/无论如何中,我听说它并不总是相同的值),布尔值只能存储 true 或 false,而 char 可以接受更多值,并且可以使用按位运算符充当多个布尔变量(8 位,每个位可以用作 1 布尔值,总共 8 个布尔值)

那么使用布尔值而不是字符有什么好处吗?

那么除了可读性之外,还有其他什么吗?我在某处读到,即使占用更多内存,int 的处理速度也比短字节或字节快。字符和布尔值之间的速度有什么区别吗?

使用bool的要点是表达意图。如果变量旨在存储具有真/假语义的值,则允许其他值只是潜在的错误来源。

bool

"布尔"的缩写,所以每个熟悉布尔代数的人都可以确定该变量可能只存储两个逻辑值(truefalse)中的一个:如果你需要一个可能只处于这两种逻辑状态之一的变量,有理由使用可以存储其他任何东西的东西吗?

标准明确定义的唯一大小是 sizeof(char) ,它是 1 个字节,但sizeof(bool)不同。每个值 1 位呢,这是关于布尔向量模板的。

[注意编辑]

您已经分析了您的应用程序,并发现这是一个瓶颈?据我所知,除了使用布尔向量之外,如果你需要存储和操作几个布尔变量,没有任何优势。