状態や選択肢を名前で管理!C言語の「列挙型(enum)」をやさしく解説
プログラムで「状態」や「種類」などを管理するとき、数字のままだと読みにくくなります。
そんなときに便利なのが 列挙型(enum:エナム) です。
C言語では、定数に意味のある名前をつけて管理できる便利な機能です。
列挙型(enum)とは?
列挙型(enumeration)は、あらかじめ定義された複数の整数定数に名前をつける仕組みです。
状態やモードなどの「限定された選択肢」を扱う場面で使われます。
基本の書き方
enum Weekday {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY
};
上記のように定義すると、
MONDAY=0
, TUESDAY=1
, … というように、自動で0から番号が割り振られます。
使用例
enum Weekday today;
today = WEDNESDAY;
if (today == WEDNESDAY) {
printf("今日は水曜日です。\n");
}
初期値を指定することも可能
enum Level {
LOW = 1,
MEDIUM = 3,
HIGH = 5
};
途中からの連番も自動でつけてくれます。
列挙型のメリット
- 意味のある名前で管理できる(可読性アップ)
- 値の範囲を限定できる(例:0〜4だけ)
- 定数をグループ化できる
- デバッグ時にもわかりやすい
列挙型とtypedefで使いやすく
typedef enum {
RED,
GREEN,
BLUE
} Color;
Color favorite = GREEN;
typedef
と組み合わせれば、enum
を省略してスマートに使えます。
注意点
- 列挙型の中身は整数値(int型)
- 文字列のようには扱えない(必要なら別途変換が必要)
まとめ
列挙型(enum)は、限定された選択肢や状態を、名前付きで扱える定数のグループです。
初心者の方は、まずは「曜日」「信号の色」「処理の優先度」など、意味のあるカテゴリをenumで管理してみると、コードがぐっと読みやすくなります!