我在采访中被问到这个问题:
是否可以将枚举变量强制转换为其他类型?
我真的不知道如何回答。
答案 0 :(得分:6)
是。在C enum
类型中只有int
个。将它们与你想要的任何东西联系起来。
enum cardsuit {
Clubs = 1,
Diamonds,
Hearts,
Spades
};
enum cardsuit trump = Diamonds;
int d = (int)trump; /* 'd' would be 2 */
答案 1 :(得分:0)
C中的任何enum
表达式都可以转换为任何算术类型,即任何类型和指针的整数或浮点数。例如,这在C:
const enum { nullpointer } nullpointer_variable = nullpointer;
unsigned *p = nullpointer; // initialization with an int
unsigned *p = nullpointer_variable; // initialization with an enum expression
大多数时候你甚至不需要明确的演员。