Gcc 结构中的枚举:比较'';和';枚举<;匿名>;

Gcc 结构中的枚举:比较'';和';枚举<;匿名>;,gcc,enums,typecasting-operator,Gcc,Enums,Typecasting Operator,类型定义枚举 { var1,var2 }enum1; typedef enum { var3,var4 = 8 }enum2; struct struct1 { enum1 e1; enum2 e2; }; int main() { struct struct1 *s1; if (s1 -> e1 == var4) 此代码引发警告: “enum1”和“enum”之间的比较[-Wenum compare] 虽然阅读后,将代码更

类型定义枚举

{

    var1,var2

}enum1;

 typedef enum 

{

  var3,var4 = 8

}enum2;

struct struct1

{

  enum1 e1;

  enum2 e2;

};

int main()

{

  struct struct1 *s1;


  if (s1 -> e1 == var4)
此代码引发警告:

“enum1”和“enum”之间的比较[-Wenum compare]

虽然阅读后,将代码更改为

s1->e1==(enum1)(int)var4

我无法解决


一些清除警告的建议将非常有帮助:)

将两个var转换为int类型是否都有效?
或者使用-Wno enum compare编译器选项

将两个var转换为int类型是否有效?
或者使用-Wno enum compare编译器选项,GCC 4.4.5不会在声明的代码更改时发出警告。

GCC 4.4.5不会在声明的代码更改时发出警告