我在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