0

私の知る限り、列挙型は次のように使用できます

typedef enum
{
   true,
   false,
   undefined    
}FLAGS;

truefalseように使用できます

int a = 1;
if(a == true)
   ....
else if(a == false)
   ....

私の問題になると、次のような列挙型の使用法に出くわしました。

FLAGS Options[] = {true, undefined};

つまり、配列は列挙型で宣言されています。何も思いつきません。私を明確にしてください。

編集::上記のシナリオで何が起こるか。

prinf("\n true:%d, false:%d, undefined:%d\n", true, false, undefined);

真: 0、偽: 1、未定義: 2

なぜ?

編集 2:: との違いint Options[] = {true, undefined};

4

2 に答える 2

2

そのコードはまったく問題ありません。任意の型の配列を作成できます。ここでは、それぞれの型が である 2 つの要素の配列を宣言していますenum FLAGS

編集:「未定義」の意味について混乱しているようです。技術的には未定義の値でも、C の予約済みキーワードでもありませ。この場合、Thar は 2 つだけです。

上記のシナリオで何が起こるか。

prinf("\n true:%d, false:%d, undefined:%d\n", true, false, undefined);

これにより、次のように出力されます。

true:0, false:1, undefined:2
于 2012-08-29T07:04:25.883 に答える
2

Anenumは整数型のようなものですが、名前付きリテラルがたくさんあるという利点があります。列挙値の配列を宣言することを妨げるものは何もありません。基本的には単なる整数の配列です。

于 2012-08-29T07:04:53.537 に答える