は、異なるコンパイラ(gcc、visual cなど)で常に同じ列挙型のサイズです。つまり、特定の列挙型のsizeof()は、C/C++標準に準拠するすべてのコンパイラで同じ値を与えますか? CとCの両方において異なるコンパイラのバイト単位の列挙サイズ
答えて
号
を++列挙は、すべての値が表現され、整数型と適合することができるようなサイズを有することになります。異なるコンパイラは、タイプを選択するために異なるアルゴリズムを使用することができます(明示的に定義されたABIのような別の標準で指定されていない場合)。 (C++ 11は、新しい構文を使用して、基礎となる型を指定することを可能にする)
必ずしもそうではありません。Cでは、答えに応じてC++を実行するのと同じように、列挙型の型をコンパイラが選択できるようにしています。 [the C standard](http://www.open-std.org/JTC1/sc22/wg14/www/docs/n1256.pdf)のセクション6.7.2.2/4を参照してください。 – pmg
さらに、C++ 0xでは、新しい* enumクラス*を使用して、列挙値を戻すために使用される整数型を指定できます。 –
@pmg、ありがとう。私はどこにいるのかわかりません。私はそれが既にC90のケースであることを確認した。 – AProgrammer
「それぞれの列挙型は、char、符号付き 整数型、または符号なし整数型と互換性がなければならない。タイプの選択は あります列挙のすべてのメンバーの の値を表すことができるものとします。
"...実装では、すべての列挙定数が表示されるまで、整数型 の選択が遅れることがあります。
ISO/IEC 9899:1999(E)するp.105
だから我々は唯一のsizeof(列挙型)の上限境界を持っています。ほとんどのシステムではsizeof(enum)= 4でしたが、STMコンパイラはsizeum(enum)= 1/2/4をenumで書かれた値に応じて作りました
編集:あなたのenumの値の1つをコンパイラが整数を列挙型サイズとして選択することを保証するための最大整数。
- 1. Qのテーブルのサイズ(バイト単位)
- 2. 文字列のサイズをバイト単位で知る方法は?
- 3. Javaコードを使用したResultSetのサイズ(バイト単位)の取得
- 4. Cコンパイラを列挙する
- 5. ログファイルのサイズ(バイト単位)はどれくらいですか?
- 6. C++はEOLのサイズ(バイト単位)を取得します
- 7. 異なる値への列挙のマッピング
- 8. 列挙変異
- 9. 列挙Windowsの用紙サイズ
- 10. C18コンパイラのtypedef列挙型データサイズ
- 11. DelphiのUnicode文字列の長さ(バイト単位)
- 12. バイトのJavaビット単位の比較
- 13. 不正確なNSDataサイズはバイト単位で指定されています
- 14. 製品サイズのMagentoサイズ単位
- 15. バイトを追加するときのコンパイラの動作が異なる
- 16. PropertyGridの列挙型 - 単純なカスタムソート順
- 17. PHP。文字列をバイト単位で処理する。
- 18. 例外が発生しないのはなぜですか?列挙型のサイズが100バイト未満の場合
- 19. 異なるエンコーディングのバイト
- 20. ギャラリーから画像(バイト単位)。また、データはバイト単位で。アンドロイドのFacebookブックアップロードの場合
- 21. 異なるサイズの単純なテキストを表示するOpenGLコード?
- 22. HTTP get要求パケットサイズ(バイト単位)
- 23. DAX年単位での異なる組織のキャッシュの変更
- 24. 異なるサイズの出力の正しい挙動、Verilogでの配線?
- 25. 異なる名前空間の列挙型へのアクセス
- 26. 異なるタイプのNSArrayでの高速列挙
- 27. 異なる列挙からのenum値を保持するフィールド
- 28. FluentNhibernate:文字列としてのバイト列挙
- 29. バイト配列からxとyの上位バイトと下位バイトを決定する
- 30. c#Howtoは異なるドメインのDCを列挙します
また、署名の度合いも異なる場合があります。 –