目次から探す
enum型を引数に受け取る関数の基本的な書き方
enum型
を引数に受け取る関数を作成するためには、以下の手順に従います。
- 関数のプロトタイプ宣言で、引数として
enum型
を指定します。
例えば、以下のようになります。
void myFunction(enum MyEnumType arg);
- 関数の定義部分で、引数として受け取った
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型
を引数に受け取る関数を利用する際には、以下の手順に従います。
enum型
の値を作成します。
例えば、以下のようになります。
enum MyEnumType myEnumValue = ENUM_VALUE1;
- 作成した
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型
を引数に受け取る関数を利用することで、特定の値に対して処理を行う柔軟性のあるプログラムを作成することができます。