我在2个具有完全相同的值集的不同模块中枚举了2个枚举。我怎么能把一个到另一个?如何将一个枚举值转换/分配给另一个枚举
typedef EnumA{
a_dog = 0,
a_cat = 1
} EnumA;
typedef EnumB{
b_dog = 0,
b_cat = 1
} EnumB;
EnumA a = a_dog;
EnumB b;
b = a;
这样的分配产生一个警告:与另一种类型混合 能否避免类型转换开关的情况下,像说
b = (int)a;
或
b = (EnumB)a;
你有没有尝试过吗? – 2015-02-06 13:05:56
如果两者都具有完全相同的值集合,那么为什么他们都定义了它们呢?只需定义一个并在两个模块中使用这一个。 无论如何,将一个枚举枚举为另一个枚举并不总是一个好主意。它应该工作。 – 2015-02-06 13:08:56
哪个编译器/工具(使用哪些选项)会导致警告?标准没有任何要求('gcc -std = c99 -pedantc -Wall -Wextra'不会发出一个)。 – mafso 2015-02-06 13:13:11