我对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)
{
}
答案 0 :(得分:21)
这种方式是正确的:
if (value == Hello3)
{
}
enum
常量的类型为int
。
你的第二个构造无效。
答案 1 :(得分:4)
enum
不是结构,成员名称只是相应constants
的名称。
enum
中定义的这些名称不是enum
中struct
的数据成员(正如您所想的那样)。
所以请记住enum
用于定义命名整数常量列表,我们也可以使用#define
来完成。
所以在你的情况下:
if(value == Hello3)
{
}
这是比较的正确方法,因为它在编译时将Hello3
替换为值3
(除int
之外的任何内容)。
例如你也可以这样做:
Hello hello=2;
if(hello == Hello2)
{
}