回答:
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である必要はありません。
http://msdn.microsoft.com/en-us/library/tf4dy80a.aspx
「Visual C ++ 4.2では、標準C ++ヘッダーファイルにboolをintと同等にしたtypedefが含まれていました。VisualC ++ 5.0以降では、boolは1バイトのサイズの組み込み型として実装されています。つまり、Visual C ++ 4.2では、sizeof(bool)の呼び出しで4が生成されますが、Visual C ++ 5.0以降では、同じ呼び出しで1が生成されます。ファイル(OBJ)および/または4.2および5.0以降のコンパイラでビルドされたDLL。
実装が定義されています。標準のみsizeof(char)です1。
CHAR_BITで定義されていclimitsます。
boolますか?私のコンパイラは1バイトだけを使用しますか?