char、signed char 和 unsigned char 的大小由 C++ 标准本身定义为 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(char),sizeof(signed char) and sizeof(unsigned char) are 1; the result of sizeof applied to any other fundamental type (3.9.1) is implementation-defined. [Note: in particular,sizeof(bool) and sizeof(wchar_t) are implementation-defined.69)
我理解 sizeof(bool) 不能小于一个字节.但是有什么理由为什么它应该大于 1 个字节吗?我并不是说实现将它定义为大于 1,但标准让它由实现定义好像它可能大于 1.
如果没有理由 sizeof(bool) 大于 1,那么我不明白为什么标准没有将它定义为 1 字节,因为它已经定义了 sizeof(char),而且都是变体.