sizeof(char)和sizeof(bool)都等于1(在我的编译器/系统/无论如何,我听说它并不总是相同的值),bool只能存储true或false而char可以使用更多的值,并可以使用按位运算符作为多个bool变量(8位,每位可以用作1个bool,总共8个bool)
使用bool而不是char有什么好处吗?
除了可读性之外还有别的什么吗?我已经读过某个地方,即使占用更多内存,int的处理速度也比short或byte快。 char和bool之间的速度有什么不同吗?
答案 0 :(得分:12)
使用bool
的要点是表达意图。如果变量旨在存储具有true / false语义的值,则允许其他值只是潜在的错误来源。
答案 1 :(得分:3)
bool
是“boolean”的缩写,因此每个熟悉boolean algebra的人都可以确定该变量可能只存储两个逻辑值中的一个(true
或{{ 1}}):如果你需要一个只能处于这两种逻辑状态之一的变量,是否有理由使用可以存储其他东西的东西?
标准明确定义的唯一尺寸是false
,它是1个字节,但sizeof(char)
differs。每个值1位,大约是boolean vector模板。
[引起注意的编辑]
您已对自己的应用进行了分析,发现这是一个瓶颈?据我所知,除了使用boolean vectors,如果你需要存储和操作几个布尔变量,没有任何优势。