0

据我所知,枚举可以像

typedef enum
{
   true,
   false,
   undefined    
}FLAGS;

true并且false可以像这样使用

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

该代码非常好。你可以创建一个任意类型的数组——在这里你声明了一个包含两个元素的数组,每个元素的类型都是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 回答