【C言語】enum型の変数に値を代入する

目次から探す

enum型の変数に代入できる値の制約

enum型の値の範囲

enum型は、事前に定義された一連の定数値からなる列挙型です。

enum型の変数には、その列挙型で定義された値のいずれかを代入することができます。

例えば、以下のようなenum型を考えてみましょう。

enum Color {
    RED,
    GREEN,
    BLUE
};

この場合、enum型の変数にはRED、GREEN、BLUEのいずれかの値を代入することができます。

つまり、enum型の変数には、列挙型で定義された値の範囲内である必要があります。

enum型の値の重複

enum型では、同じ値を複数回定義することはできません。

例えば、以下のようなenum型は無効な定義です。

enum Color {
    RED,
    GREEN,
    BLUE,
    RED // エラー: 同じ値を複数回定義している
};

enum型の値は一意である必要があります。

重複した値を定義すると、コンパイルエラーが発生します。

enum型の変数に値を代入する際の注意点

enum型の変数に不正な値を代入するとどうなるか

enum型の変数には、列挙型で定義された値のいずれかを代入する必要があります。

もし、列挙型で定義されていない値をenum型の変数に代入した場合、予期しない動作が発生する可能性があります。

例えば、以下のようなenum型を考えてみましょう。

enum Day {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY
};

この場合、enum型の変数にはMONDAYからFRIDAYまでの値を代入することができます。

しかし、例えばSATURDAYという値を代入した場合、列挙型で定義されていない値なので、予期しない結果が生じる可能性があります。

enum型の変数に値を代入する際のベストプラクティス

enum型の変数に値を代入する際には、列挙型で定義された値を使用することが推奨されます。

これにより、コードの可読性が向上し、不正な値を代入することを防ぐことができます。

また、enum型の値は整数として扱われるため、enum型の変数には整数値を直接代入することも可能です。

ただし、この場合は列挙型で定義された値との対応関係を明示するため、コメントなどで説明を付けることが望ましいです。

enum型の変数に値を代入する実例

カラーコードを表すenum型の変数に値を代入する

例えば、カラーコードを表すenum型を考えてみましょう。

enum Color {
    RED = 0xFF0000,
    GREEN = 0x00FF00,
    BLUE = 0x0000FF
};

この場合、enum型の変数には、RED、GREEN、BLUEのいずれかの値を代入することができます。

例えば、以下のようにenum型の変数に値を代入することができます。

enum Color color = RED;

曜日を表すenum型の変数に値を代入する

また、曜日を表すenum型を考えてみましょう。

enum Day {
    SUNDAY,
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY
};

この場合、enum型の変数には、SUNDAYからSATURDAYまでの値を代入することができます。

例えば、以下のようにenum型の変数に値を代入することができます。

enum Day today = MONDAY;

以上が、enum型の変数に値を代入する方法についての解説です。

enum型を使うことで、定数値をわかりやすく表現することができます。

また、enum型の変数には、列挙型で定義された値を代入することが重要です。

目次から探す