ここでは、adram_controller_maximum
を10に割り当てます。これは、書くたびに
something = dram_controller_maximum
、次のことを意味しますsomething = 10
。
enum DRAM_Controller { dram_controller_maximum = 10};
次の関数では、数値を渡すと、それを出力するだけです。変数を渡すと、DRAM_Controller
その値(数値、覚えておいてください)が評価され、出力されます。
void myprint(DRAM_Controller dct)
{
printf("dct value is: %d\n", dct);
}
0
次の行は、整数( )をに変換するだけDRAM_Controller
です。この行だけではかなり役に立たない:
DRAM_Controller(0); //**--> What is the meaing of this**
次の3行は、dram_controller_maximum
intに変換された値を出力します。最初は10に等しいと言ったので、これは10を出力することを覚えておいてください。3行すべてが同じことを行います。DRAM_Controllerタイプの値をintとして解釈し、出力しようとします。
printf("value is : %d\n", dram_controller_maximum);
printf("value is : %d\n", DRAM_Controller(1));
myprint(DRAM_Controller(0));
基本的に、anは「名前」を持つsのenum
集まりです。int
Cは、列挙値の整数表現をプログラマーに直接公開します。整数と列挙値は自由に混在させることができ、列挙値に対するすべての算術演算が許可されます。列挙型変数が、列挙値のいずれも表さない整数を保持することも可能です。実際、言語定義によれば、上記のコードはCLUBS、DIAMONDS、HEARTS、およびSPADESをint型の定数として定義し、それらがその型の変数に格納されている場合にのみ(サイレントに)列挙型カードスーツに変換されます
と
C ++には、Cから直接継承され、ほとんどの場合これらのように機能する列挙型があります。ただし、列挙はC ++の実際の型であり、コンパイル時のチェックが追加されます。
ウィキから。