Project_OKI’s diary

エンジニアの勉強ブログ

組み込みC言語基礎知識8(enum:列挙型)

​​​​

enumとは

・目次

1.enumとは

 (1) 列挙型
 (2) 複数の変数に一連の整数値を付けるのに使用する。
 (3) 列挙型で定義される変数はメンバと言う。
 (3) デフォルトでは定義されたメンバの順に0(ゼロ)から整数値が付けられる。
 (4) 最初の値を0(ゼロ)以外で定義することも可能。
 (5) 例えば、OFFを0、ONを1という整数値にしたい時などに使用する。

2.enumの使い方

(1) 使用方法、書き方
 //enumの定義
 enum タグ名 {メンバ[0], メンバ[1], メンバ[2], ・・・};

 //enumの宣言
 enum タグ名 オブジェクト名;
 オブジェクト名 = メンバ名;
(2) 使用例(enumを使ったプログラムの作成)

 enumで宣言したmen0,men1,men2の値を確認する。

#include<stdio.h>
 
 //enumの定義
enum tag{
  men0,     //0
  men1,     //1
  men2      //2
};
  
int main(void){
  //enumの宣言
  enum tag a,b,c;
  int d;
  
  //enum型のメンバを代入
  a = men0;
  b = men1;
  c = 10;  //メンバ以外のものを代入
  //int型にメンバを代入
  d = men2;
  
  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
 

 ※注意

 実行結果を見ると、aは0,bは1、cは10、dは2となっている。

 enumで宣言した変数に、enumで設定したもの以外も入力できる。

 また、enumで宣言したタグ名を使用しなくても、enumで用意した

 men0は、0、men1は1、men2は2として定数として扱うことができる。

 

3.enumをtypedefで定義して使用する。

(1) typedefを使用したenumの使用方法、書き方
typedef enum タグ名 {メンバ[0], メンバ[1], メンバ[2], ・・・}型名;
//※タグ名は省略可
 
//型宣言
型名 オブジェクト名;
オブジェクト名 = メンバ名;
 (2)使用例 (typedef enumを使用したプログラム)
//ファイルのインクルード
#include <stdio.h>
///ONOFF型
typedef enum{OFF=0		///<OFF指定
	  ,ON			///<ON指定
}ONOFF; int main(void){ ONOFF a = OFF; ONOFF b = ON; int c = ON; printf("a:OFF:%d\n",a); printf("b:ON:%d\n",b); printf("c:ON:%d\n",c); printf("OFFsize:%ld\n",sizeof(a)); printf("ONsize:%ld\n",sizeof(a)); printf("ONOFFsize:%ld\n",sizeof(ONOFF)); }

実行結果:https://paiza.io/projects/mLpHK4wGvOClet6-6rfcpg

 

関連記事

過去の記事:

知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - Project_OKI’s diary

C言語基礎知識6(関数) - Project_OKI’s diary

C言語基礎知識7(構造体1) - Project_OKI’s diary

C言語基礎知識8(enum:列挙型) - Project_OKI’s diary

C言語基礎知識9(typedef) - Project_OKI’s diary

C言語基礎知識10(extern宣言) - Project_OKI’s diary

C言語基礎知識11(#define) - Project_OKI’s diary