C 如何比较枚举值
我有一个关于C 如何比较枚举值,c,enums,C,Enums,我有一个关于enumC的问题 我用以下方式定义了一个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 ==
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
不是结构,成员名称只是相应的常量的名称。
在enum
中定义的这些名称与struct
中的enum
不同(如您所想)
请记住,enum
用于定义命名整数常量的列表,我们也可以使用#define
来定义这些常量
因此,在您的案例中:
if(value == Hello3)
{
}
这是比较的正确方法,因为它在编译时将Hello3
替换为值3
(这只是int
)
例如,您也可以这样做:
Hello hello=2;
if(hello == Hello2)
{
}
我注意到你最近在这里问了很多关于C的基本问题,也许是时候找一本关于C的入门书了?通过这种方式,你可以更快地学习,而不是通过这里的问答反复地学习。我可以建议,由语言的创造者来做吗?这不是一本大书(因为C不是一门大语言),而且这些例子很有趣。好的,我想你是对的,我确实需要读一本C语言的书,任何你推荐的书?这里有一个非常好的推荐书列表: