相关疑难解决方法(0)

为什么sizeof(bool)没有被标准本身定义为一个?

C++标准本身的大小char,signed char并且unsigned char被定义为1个字节.我想知道它为什么没有定义sizeof(bool)呢?

C++ 03标准$ 5.3.3/1说,

sizeof(char),sizeof(signed char)和sizeof(unsigned char)是1; sizeof应用于任何其他 基本类型(3.9.1)的结果是实现定义的.[注意:特别是sizeof(bool)和sizeof(wchar_t)是实现定义的 .69)

我理解sizeof(bool)不能小于一个字节的基本原理.但有没有理由说它为什么应该大于1个字节呢?我并不是说实现将它定义为大于1,但是标准使它被实现定义为好像它可能大于1.

如果没有理由sizeof(bool)大于1,那么我不明白为什么标准没有1 byte像它定义的那样定义它sizeof(char),而且它是所有变体.

c++ standards boolean sizeof

35
推荐指数
3
解决办法
1万
查看次数

标签 统计

boolean ×1

c++ ×1

sizeof ×1

standards ×1