C言語の列挙型変数の定義と使用方法
C 言語で、列挙型(enum type)とは固定長の値の集合を定義するユーザー定義データ型であり、この値は列挙定数(enum constants)と呼ばれます。
列挙型の定義フォーマットは下記の通りです。
enum enum_name {
constant1,
constant2,
constant3,
...
};
enum_name は列挙型の名前で、constant1、constant2、constant3 などの名前は列挙定数です。デフォルトでは、最初の列挙定数の値は 0 で、後続の列挙定数の値は逐次増加します。
例えば、曜日の列挙型を定義する:
enum Weekday {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
列挙型を定義したら、変数にその型を指定して値を代入できます。例:
enum Weekday today;
today = Tuesday;
上述コード内の列挙体変数 today には、火曜日が代入されています。
列挙型変数の値は列挙型で定義された定数のみを取ることができ、それ以外の代入は不正である。例えば、次のコードはコンパイルエラーとなる。
enum Weekday today;
today = 2; // 编译错误:不能将整数值赋值给枚举类型变量
列挙型の定数值を使用したい場合は、列挙型の名称で修飾することなく、定数名を使用できます。例:
enum Weekday today;
today = Monday;
if (today == Monday) {
printf("Today is Monday\n");
}
このコードでは、today と Monday の値を比較して今日は月曜日かどうかを判定し、それに応じたメッセージを出力します。
列挙型はメモリ上では整数型として格納されており、算術演算をすることができます。例えば、列挙型の定数同士で加算や減算をすることができます。ただし、コンパイラによって扱いが異なる可能性があるので、算術演算を行う場合には注意が必要です。
以上でC言語での列挙型の変数の定義方法と使用方法が完了です。あなたのお役に立てれば幸いです!