【发布时间】:2012-08-29 07:01:47
【问题描述】:
据我所知,枚举可以像这样使用
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};有何不同
【问题讨论】:
-
关于究竟是什么你不知道吗?
-
Options 是一个包含两个 FLAGS 类型值的数组。
-
您介意进一步解释吗?
-
使用枚举作为数组。在上述情况下它将做什么。
-
int Options[]和FLAGS Options[]仅在数组类型上有所不同。两者都是允许的,因为枚举值可以转换为int。 (但请注意,true==0和false==1会让所有人感到困惑,因为通常情况正好相反).