我有一个关于enum
C的问题。
我enum
通过以下方式定义了一个:
typedef enum
{
Hello1 = 1,
Hello2 = 2,
Hello3 = 3
}Hello
Hello hello;
int value = 3;
那么如何将值与中的值进行比较Hello
?
例如:
if(value == Hello3)
{
}
还是我应该这样做:
if(value == Hello.Hello3)
{
}
这种方式是正确的:
if (value == Hello3)
{
}
enum
常量的类型是int
.
您的第二个构造无效。
enum
不是结构,成员名称只是对应的名称constants
。定义的这些名称enum
不是enum
like in的数据成员struct
(如您所想)。
所以记住enum
用于定义命名整数常量的列表,我们也可以使用它#define
。
所以在你的情况下:
if(value == Hello3)
{
}
这是比较的正确方法,因为它在编译时替换Hello3
为值3
(只不过是)。int
例如,您也可以这样做:
Hello hello=2;
if(hello == Hello2)
{
}