C 列挙型 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(列挙型)
(列挙型)
121行: 121行:
  
  
列挙型変数への代入は列挙子でしか代入できません。したがって列挙子を指定してもよい関数でありながら数値で指定してもよい関数がこの世の中にはたくさんあることから、列挙子を使える関数の中身はどちらの型を引数にとってもよいような作りになっていることになります。
+
列挙型変数への代入は列挙子でしか代入できませんが、if文やswitch文などで列挙子以外の値と比較演算をすることは可能です。
  
  
162行: 162行:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
のように列挙子の記述の途中で…ACTION_STOP2 = 0,…のような記述を挟むことで、番号のふりなおしがされます。すべての列挙子に数値を指定して列挙子を作成することもできます。すべて列挙子に数字を指定するということは、順番に割り振られる列挙型のシステムを使うかどうかの違いだけになります。何度でも振り直しができるため、列挙子がもつ数字が重複することは、すごく当然のように許されています。
 
のように列挙子の記述の途中で…ACTION_STOP2 = 0,…のような記述を挟むことで、番号のふりなおしがされます。すべての列挙子に数値を指定して列挙子を作成することもできます。すべて列挙子に数字を指定するということは、順番に割り振られる列挙型のシステムを使うかどうかの違いだけになります。何度でも振り直しができるため、列挙子がもつ数字が重複することは、すごく当然のように許されています。
 +
 +
 +
また、列挙名型を宣言した範囲内であれば、列挙子が持つint型の整数値を格納することができるため、
 +
<syntaxhighlight lang="cpp" line start="1">
 +
#pragma once
 +
#include <iostream>
 +
 +
using namespace std;
 +
 +
int _tmain(int argc, _TCHAR* argv[]){
 +
  enum enumAction{
 +
    ACTION_STOP,
 +
    ACTION_START,
 +
    ACTION_PAUSE,
 +
    ACTION_RECORD,
 +
    ACTION_RESTART,
 +
    ACTION_NEXTCHAPTER,
 +
    ACTION_PREVCHAPTER
 +
  };
 +
  int nEnum;
 +
  nEnum = ACTION_STOP;
 +
 +
  printf("%d\n",nEnum);
 +
}
 +
</syntaxhighlight>
 +
と上記のように列挙子をint型の変数へ代入することができます。
  
  
 
列挙型の変数はポインタとして扱われることもありますので、そのあたりの応用が必要になることもありますが、通常のポインタ操作となんらかわらないため、詳細は[[C ポインタ|ポインタ]]の項目を参照して下さい。
 
列挙型の変数はポインタとして扱われることもありますので、そのあたりの応用が必要になることもありますが、通常のポインタ操作となんらかわらないため、詳細は[[C ポインタ|ポインタ]]の項目を参照して下さい。

2015年2月18日 (水) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス