布尔值的最小大小是多少?

Gab*_*iel 2 c++ boolean sizeof c++11

我正在研究Stanley B. Lippman 在 C++ Prime 中的算术类型。当作者谈论整数类型和每个类型的大小时,例如 char 是 8 位,我注意到布尔值的最小大小并不是很清楚。考虑类型转换,以及以下代码:

bool b = 42; // b is true
int i = b; // i had value 1
Run Code Online (Sandbox Code Playgroud)

我可以说布尔值具有与整数相同的最小大小(通常为 16 位),因为如果它为假,它将为 0,即一个 int,如果为真,则为 1,另一个 int?如果我说的是错误的,那么布尔值的最小大小是多少?

小智 6

bool占用最少 1 个字节。即使trueor只有两个选项false,它也不能是 1 位,因为 abool需要可寻址。