enum
enum:列挙型
複数の変数に一連の整数値を付けるのに使用する
列挙型で定義される変数はメンバと言う。
デフォルトでは定義されたメンバの順に0(ゼロ)から整数値が付けられる。
最初の値を0(ゼロ)以外で定義することも可能
定数に何を使うべきか
参考:https://stacked-tip.hateblo.jp/entry/20170205/1486265207
使用方法:
code:c
//enumの定義
enum タグ名 {メンバ0, メンバ1, メンバ2, ・・・};
//enumの宣言
enum タグ名 オブジェクト名;
オブジェクト名 = メンバ名;
例:
code:c
#include<stdio.h>
//enumの定義
enum tag{
men0,
men1,
men2
};
int main(void){
//enumの宣言
enum tag a,b,c;
int d;
//enum型のメンバを代入
a = men0;
b = men1;
c = 10; //メンバ以外のものを代入
d = men2; //int型にメンバを代入
printf("men0:%d\n",a);
printf("men1:%d\n",b);
printf("men2:%d\n",d);
printf("c:%d\n",c);
}
実行結果:https://paiza.io/projects/ylFYVWDuOTYp3MgwaCq_ag
typedefを使用し、定義、宣言も可能
使用方法:
code:c
//enumの宣言
typedef enum タグ名 {メンバ0, メンバ1, メンバ2, ・・・}型名;
//※タグ名は省略可
//型宣言
型名 オブジェクト名;
オブジェクト名 = メンバ名;
例:
code:c
//ファイルのインクルード
#include <stdio.h>
///ONOFF型
typedef enum{OFF=0 ///<OFF指定:0
,ON ///<ON指定:1
}ONOFF;
int main(void){
ONOFF a = OFF; //aにOFF(数値:0)を代入
ONOFF b = ON; //bにON(数値:1)を代入
printf("OFF:%d\n",a); //aの表示
printf("ON:%d\n",b); //bの表示
printf("OFFsize:%d\n",sizeof(a)); //aのサイズ(byte)確認
}
実行結果:https://paiza.io/projects/mLpHK4wGvOClet6-6rfcpg