2

方法を知りたいです。

このトピックを見て、「型の選択は実装定義です」ということは理解しましたが、4 の代わりに 1 を取得する方法を知りたいです。

4

2 に答える 2

8

C++11 では、列挙型の基になる型を変更する方法が導入されました。

enum foo : char { ... };
enum class foo : char { ... };

intそれでも、ほとんどの場合、デフォルトを使用した方がよいでしょう。

于 2012-07-01T19:12:29.290 に答える
1

GCC では、'packed' 属性を使用して、ワード アラインメントやアクセス速度よりもスペースを重視することをコンパイラに伝えることもできます。

enum foo { ... } __attribute__((packed));

他のコンパイラにも同様のヒントがあります。

(これは、コンパイラまたは IDE でまだサポートされていない C++11 機能を回避しようとする場合に役立ちます。)

于 2013-02-07T03:16:55.923 に答える