8

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

那么使用 bool 而不是 char 有什么优势吗?

那么除了可读性之外还有什么别的吗?我在某处读到 int 的处理速度比 short 或 byte 更快,即使它占用更多内存。char和bool之间的速度有什么区别吗?

4

2 回答 2

16

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

于 2013-11-03T13:26:47.273 回答
3

bool是“布尔”的缩写,因此每个熟悉布尔代数的人都可以确定该变量可能只存储两个逻辑值之一(truefalse):如果您需要一个变量,该变量可能只存在于这两个逻辑值之一中逻辑状态,是否有理由使用可以存储其他任何东西的东西?

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

[关注编辑]

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

于 2013-11-03T13:35:59.863 回答