一字节的布尔型。为什么?

24 浏览
0 Comments

一字节的布尔型。为什么?

在C++中,为什么一个bool需要一个字节的存储空间来表示true或false,而只需要一个比特,比如0表示false,1表示true?(为什么Java也需要一个字节?)

其次,使用以下方式到底有多安全?

struct Bool {
    bool trueOrFalse : 1;
};

再次,即使这样是安全的,上面的字段技术真的会有所帮助吗?因为我听说我们在这里节省了空间,但是编译器生成的用于访问它们的代码比用于访问原始类型的代码更大更慢。

0