列挙型は、自分で定義したキーワード(識別子)を格納するための型である。
この型の名前は自由に決めることができるが、enumというキーワードを最初につける必要がある。
例えば、「enum Size」とする場合、
enum Size {S,M,L,XL};
と記述する。
なお、enum Size型の変数には、次にように値を代入できる。
enum Size a = XL;
数値ではなく、自分で決めたキーワードを代入できること、代入できるものを限定できることが列挙型を使うメリットである。
では、列挙型を使う例をプログラムでみてみよう。
なお、本プログラムは、Windows 11 Home(23H2)上で、
Visual Studio Code(1.91.1)を使用して作成し、gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0で コンパイルしている。
//列挙型の例
#include <stdio.h>
enum Size {S,M,L,XL};
int main(void) {
enum Size s = XL;
printf("現在の値は%dです。\n",s);
switch (s)
{
case S:
printf("小さいサイズです。\n");
break;
case M:
printf("普通サイズです。\n");
break;
case L:
printf("大きいサイズです。\n");
break;
case XL:
printf("特大サイズです。\n");
break;
}
return 0;
}
実行結果
現在の値は3です。
特大サイズです。
実行結果からわかるように、その実体は整数なので、switch文で使用できる。
列挙型の定義で決めたキーワードに対して、先頭から順に0から始まる整数が割り当てられる。
(参考)「C言語 新版 ゼロからはじめるプログラミング」 三谷 純 (著) 翔泳社
コメント