C言語の列挙型を引数としてどのように表現しますか?
C言語では、列挙型を関数のパラメータとして表現することができます。具体的な構文は次の通りです:
#include <stdio.h>
// 定义一个枚举类型
enum Weekday {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
// 函数接受一个枚举类型作为参数
void printWeekday(enum Weekday day) {
switch (day) {
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;
case Sunday:
printf("星期日\n");
break;
default:
printf("无效的日期\n");
break;
}
}
int main() {
enum Weekday today = Tuesday;
printWeekday(today);
return 0;
}
上の例では、一週間の曜日を表す列挙型Weekdayを定義しました。その後、Weekday型のdayを引数として受け取り、dayの値に応じて曜日を出力するprintWeekday関数を定義しました。main関数では、Weekday型の変数todayを作成し、それにTuesdayを代入し、printWeekday関数に引数として渡しました。
結果は次の通りです:
星期二