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),而且它是所有变体.