相关疑难解决方法(0)

sizeof(bool)是否在C++语言标准中定义?

我在标准文档中找不到答案.C++语言标准是否要求sizeof(bool)始终为1(1个字节),还是要定义此大小的实现?

c++ boolean sizeof implementation-defined-behavior

107
推荐指数
3
解决办法
6万
查看次数

为什么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万
查看次数

为什么c ++中的char和bool大小相同?

我正在阅读C++编程语言.Stroustrup在其中陈述sizeof(char) == 11 <= sizeof(bool).具体取决于实施.为什么像布尔这样的简单值与char相同?

c++ boolean

31
推荐指数
4
解决办法
3万
查看次数