重複の可能性:
sizeof(bool)の実装はC ++で定義されていますか?
g ++ lib(libpng)を使用してvc ++でコンパイルされ、boolがg++とvc++で同じサイズとビットであるかどうかを知る必要があるコードを書いています。私が知っているのは、すべて0であり、vc ++ではsizeof(bool)が1であるということだけです。
重複の可能性:
sizeof(bool)の実装はC ++で定義されていますか?
g ++ lib(libpng)を使用してvc ++でコンパイルされ、boolがg++とvc++で同じサイズとビットであるかどうかを知る必要があるコードを書いています。私が知っているのは、すべて0であり、vc ++ではsizeof(bool)が1であるということだけです。
一部のプラットフォームでは1に等しくないバージョンg++
(およびそのことについてはVisual C ++のバージョン)がありsizeof(bool)
ます。したがって、g++とVisualC++で同じになるとは限りません。同じコンパイラの異なるバージョンまたは異なるプラットフォームの同じバージョンで同じであると想定することさえできません。
別の質問で読むことができるように、C++03標準$5.3.3/ 1は、次のように述べています。
sizeof(char)、sizeof(signed char)、sizeof(unsigned char)は1です。他の基本タイプ(3.9.1)に適用されたsizeofの結果は、実装によって定義されます。[注:特に、sizeof(bool)とsizeof(wchar_t)は実装定義です。69)
したがって、の結果sizeof(bool)
は実装定義です。