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