今回は、列挙型について説明していきます。
#include <stdio.h>
/* 列挙型のtvを宣言 */
enum tvCH{
TV_NHK,
TV_KYOIKU,
TV_FUJI
};
void show(enum tvCH ch);
void main(void) {
show(TV_NHK);
show(TV_KYOIKU);
show(TV_FUJI);
}
void show(enum tvCH ch) {
switch (ch) {
case TV_NHK:
printf("ch=NHK\n");
break;
case TV_KYOIKU:
printf("ch=KYOIKU\n");
break;
case TV_FUJI:
printf("ch=FUJI\n");
break;
default:
break;
}
}
列挙型と言う新しい型を宣言して作っています。
/* 列挙型のtvを宣言 */
enum tvCH{
TV_NHK,
TV_KYOIKU,
TV_FUJI
};
列挙型は、ある項目に関連するデータの集まりを表す型です。
また、列挙型の項目は、内部的に整数が割り当てられています。
列挙型の先頭項目から定義順に、0 から値が割り当てられます。
この場合は、TV_NHK が0 TV_KYOIKU が1 TV_FUJI が 2となります。
列挙型による表現は、#define による記号定数でも表すことができますが、
記号定数は、プログラムのあらゆる箇所に影響してきて、
管理しづらいものですが、
列挙型は、static をつける事によって、影響を与える箇所を限定でき、
管理しやすいので、できるだけ列挙型を使うようにしましょう。