enum

読み:イーナム
読み:イニューム
外語:enum: enumeration
発音:in(j)ú:m
品詞:名詞

C/C++/Javaで、(数値の)列挙型。名前を付けた整数定数の集合を用意し、その集合の要素を新たな型として定義する予約語

#defineで定数をマクロ定義するのに比べ、enumで定義した型を使用すると、

  • コンパイラによってはswitch文で網羅していないcaseがあると警告してくれる
  • enum型を引数にする関数に無関係な値を渡すと警告してくれる
  • デバッグ時にenum型は数値ではなくシンボルとして表示してくれる

などのメリットが期待できる。

もちろん、これはツール(コンパイラ、デバッガ)の作りによる。

元々はPascalで搭載されていた機能で、一部のメーカーのCコンパイラで採用された後、ANSI Cで正式に規格に組み込まれた。

Javaでは、publicstaticfinalな定数を使うことで代わりにしていたが、Java Standard Edition 5.0において、java.lang.Enum型を継承する特殊なクラスとしてenumを定義することが可能になった。