0xb*_*00d 107 c++ boolean sizeof implementation-defined-behavior
我在标准文档中找不到答案.C++语言标准是否要求sizeof(bool)
始终为1(1个字节),还是要定义此大小的实现?
GMa*_*ckG 158
sizeof(bool)
是实施定义,标准着重强调这一事实.
§5.3.3/ 1,删节:
sizeof(char)
,sizeof(signed char)
和sizeof(unsigned char)
为1; 的结果sizeof
应用于任何其它类型的基本是实现定义.[注意:特别是,sizeof(bool)
并且sizeof(wchar_t)
是实现定义的.69) ]
脚注69):
sizeof(bool)
不要求为1.
Yi *_*ing 14
http://msdn.microsoft.com/en-us/library/tf4dy80a.aspx
"在Visual C++ 4.2中,标准C++头文件包含一个将bool与int等同的typedef.在Visual C++ 5.0及更高版本中,bool实现为内置类型,大小为1个字节.这意味着对于Visual C++ 4.2,调用sizeof(bool)产生4,而在Visual C++ 5.0及更高版本中,同一调用产生1.如果在Visual C++ 4.2中定义了bool类型的结构成员并且正在混合对象,则可能导致内存损坏问题使用4.2和5.0或更高版本的编译器构建的文件(OBJ)和/或DLL."
peo*_*oro 10
它的实现已定义.仅sizeof(char)
是1
由标准.