列挙型は、自分で定義したキーワード(識別子)を格納するための型である。
この型の名前は自由に決めることができるが、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言語 新版 ゼロからはじめるプログラミング」 三谷 純 (著) 翔泳社

 
 

コメント