タグ

ブックマーク / rarara.cafe.coocan.jp (1)

  • C++での列挙型のサイズを制御する方法はある?

    [戻る] shin 2002/08/09(金) 06:04:22 C++のenum型で宣言する型のサイズを決める方法はあるのでしょうか? ANSI Cだとint型になるようですが、C++での振る舞いを知りたいです。 Cと同じかなと思ったのですが、DirectXのヘッダを見ると下のようになってました。 enum foo { foo0, foo1, foo_FORCE_DWORD = 0x7FFFFFFF }; この記述から「コンパイラはenum型の全定数の値域を調べ、それからサイズを決めるのかな?」 と思いました。でも、実際は値域に関係なくsizeof(int)固定でした。 (VC++6.0+SP5の為、sizeof(int)==4) 自身で調べた結果は「制御できない」でした。 ですが、上の例でわざわざfoo_FORCE_DWORDを設けている事から判断すると、 出来そうな気がします。 細か

    kastro-iyan
    kastro-iyan 2014/03/04
    Stroustrup プログラミング言語C++(4.8)によると「列挙のsizeofは、列挙の範囲の値を保持できる整数系データのsizeofだがint, unsigned intとして表現できない列挙子が含まれていない限りsizeof(int)より大きくはならない。」だそうです
  • 1