【发布时间】:2013-10-20 10:35:24
【问题描述】:
bool 是 8 位的,只有真假,为什么不做单位。
而且我知道有bitset,但不是那么方便,我只是想知道为什么?
【问题讨论】:
-
可能是因为处理器不支持它。另外,看看位域。
-
谁说“
bool是 8 位”? -
每次你想要一个布尔值时都使用一个位是低效的,因为需要在 CPU 中确定一个字节或一个字中正确的对应位并检查它。唯一有意义的情况是您管理一组布尔值,这就是位字段或位集的用途。
-
本质上,因为在大多数机器上,内存是字节寻址的。
-
因为 C++ 中的对象想要有地址,而一个位没有地址。 (只要 CHAR_BIT != 1)