14

我有一个关于enumC的问题。

enum通过以下方式定义了一个:

typedef enum
{
    Hello1 = 1,
    Hello2 = 2,
    Hello3 = 3
}Hello

Hello hello;

int value = 3;  

那么如何将值与中的值进行比较Hello

例如:

if(value == Hello3)
{
}

还是我应该这样做:

if(value == Hello.Hello3)
{
}
4

2 回答 2

27

这种方式是正确的:

 if (value == Hello3)
 {
 }

enum常量的类型是int.

您的第二个构造无效。

于 2012-11-09T08:56:58.133 回答
5

enum不是结构,成员名称只是对应的名称constants。定义的这些名称enum不是enumlike in的数据成员struct(如您所想)。

所以记住enum用于定义命名整数常量的列表,我们也可以使用它#define

所以在你的情况下:

if(value == Hello3)
{
}

这是比较的正确方法,因为它在编译时替换Hello3为值3(只不过是)。int

例如,您也可以这样做:

Hello hello=2;
if(hello == Hello2)
{
}
于 2012-11-09T09:01:47.733 回答