我们可以在c中对类型变量进行类型转换

时间:2011-11-04 16:33:27

标签: c

我在采访中被问到这个问题:

  

是否可以将枚举变量强制转换为其他类型?

我真的不知道如何回答。

2 个答案:

答案 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

大多数时候你甚至不需要明确的演员。