为什么布尔只需要一个字节就可以存储真或假,而只需要一位就可以
因为C ++中的每个对象都必须是可单独寻址的*(也就是说,您必须能够有一个指向它的指针)。您不能寻址单个位(至少不是在常规硬件上)。
使用以下内容更安全?
这是“安全的”,但并没有取得太大的成就。
上面的现场技术真的有帮助吗?
否,出于与上述相同的原因;)
但是编译器生成的用于访问它们的代码仍然比生成访问基元的代码更大,更慢。
是的,这是真的。在大多数平台上,这需要访问包含的字节(或
int任何其他字节),然后执行移位和位掩码操作以访问相关位。
如果您确实担心内存使用情况,可以使用
std::bitsetC
++或
BitSetJava中的打包位。
*除少数例外。



