我有一个关于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 == Hello3)
{
}
enum常量的类型是int.
您的第二个构造无效。
enum不是结构,成员名称只是对应的名称constants。定义的这些名称enum不是enumlike in的数据成员struct(如您所想)。
所以记住enum用于定义命名整数常量的列表,我们也可以使用它#define。
所以在你的情况下:
if(value == Hello3)
{
}
这是比较的正确方法,因为它在编译时替换Hello3为值3(只不过是)。int
例如,您也可以这样做:
Hello hello=2;
if(hello == Hello2)
{
}