【发布时间】:2013-10-21 12:02:51
【问题描述】:
正如已经讨论过的in the docs,bool 数据类型至少占用一个字节的内存。之前在 SO 上提出了类似的问题 (How a bool type variable is stored in memory? (C++)),但这个讨论和文档似乎只讨论布尔数据类型占用的空间量,而不是当我 在内存中实际发生的情况这样做:
bool b = true;
那么内存中到底发生了什么?未用于存储此信息的 7 位会发生什么?标准是否为此规定了行为?
它们是未定义的吗?还是 C++ 总部的某个人这样做了:
enum bool : char
{
false = 0,
true = 1
};
【问题讨论】:
-
[OT]“C++ 总部”的概念让我发笑;我觉得它是一个灰色的地方,到处都是尘土飞扬的标准副本,数百名语言律师质疑 STL 与 stdlib 和类似的诽谤。[/OT]
-
作为这个问题的扩展,我最好使用 char(单字节)而不是 bool?