【C言語】enum型を引数に受け取る書き方を解説

目次から探す

enum型を引数に受け取る関数の基本的な書き方

enum型を引数に受け取る関数を作成するためには、以下の手順に従います。

  1. 関数のプロトタイプ宣言で、引数としてenum型を指定します。

例えば、以下のようになります。

void myFunction(enum MyEnumType arg);
  1. 関数の定義部分で、引数として受け取ったenum型の値に応じて処理を行います。

例えば、以下のようになります。

void myFunction(enum MyEnumType arg) {
    switch(arg) {
        case ENUM_VALUE1:
            // ENUM_VALUE1に対する処理
            break;
        case ENUM_VALUE2:
            // ENUM_VALUE2に対する処理
            break;
        // 他のenum値に対する処理を追加
    }
}

以上がenum型を引数に受け取る関数の基本的な書き方です。

次に、enum型を引数に受け取る関数の利用方法について説明します。

enum型を引数に受け取る関数の利用方法

enum型を引数に受け取る関数を利用する際には、以下の手順に従います。

  1. enum型の値を作成します。

例えば、以下のようになります。

enum MyEnumType myEnumValue = ENUM_VALUE1;
  1. 作成したenum型の値を引数として関数に渡します。

例えば、以下のようになります。

myFunction(myEnumValue);

これにより、enum型を引数に受け取る関数が呼び出され、関数内で指定した処理が実行されます。

enum型を引数に受け取る関数の応用例

enum型を引数に受け取る関数の利用例1

例えば、曜日を表すenum型を引数に受け取る関数を考えてみましょう。

enum DayOfWeek {
    SUNDAY,
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY
};
void printDay(enum DayOfWeek day) {
    switch(day) {
        case SUNDAY:
            printf("日曜日\n");
            break;
        case MONDAY:
            printf("月曜日\n");
            break;
        case TUESDAY:
            printf("火曜日\n");
            break;
        case WEDNESDAY:
            printf("水曜日\n");
            break;
        case THURSDAY:
            printf("木曜日\n");
            break;
        case FRIDAY:
            printf("金曜日\n");
            break;
        case SATURDAY:
            printf("土曜日\n");
            break;
    }
}
int main() {
    enum DayOfWeek today = MONDAY;
    printDay(today);
    return 0;
}

上記のコードでは、enum型のDayOfWeekを引数に受け取る関数printDayを定義しています。

関数内で、引数として受け取ったenum型の値に応じて、対応する曜日を表示する処理が行われます。

main関数では、MONDAYを引数としてprintDay関数を呼び出しています。

実行結果は以下のようになります。

月曜日

enum型を引数に受け取る関数の利用例2

次に、状態を表すenum型を引数に受け取る関数を考えてみましょう。

enum State {
    OFF,
    ON
};
void toggleState(enum State* state) {
    if (*state == OFF) {
        *state = ON;
    } else {
        *state = OFF;
    }
}
int main() {
    enum State myState = OFF;
    toggleState(&myState);
    printf("現在の状態: %s\n", myState == ON ? "ON" : "OFF");
    return 0;
}

上記のコードでは、enum型のStateを引数に受け取る関数toggleStateを定義しています。

関数内で、引数として受け取ったenum型の値に応じて、状態を切り替える処理が行われます。

main関数では、OFFを初期状態としてmyStateに代入し、toggleState関数を呼び出しています。

その後、現在の状態を表示しています。

実行結果は以下のようになります。

現在の状態: ON

以上がenum型を引数に受け取る関数の応用例です。

enum型を引数に受け取る関数を利用することで、特定の値に対して処理を行う柔軟性のあるプログラムを作成することができます。

目次から探す