有没有办法声明一个函数参数来接受一个匿名枚举?

时间:2019-04-12 03:39:28

标签: c enums

如果我有一个匿名枚举,是否有任何方法可以将该类型的值传递给函数?例如,

typedef struct {
    enum { On, Off } status;
    int max_amps;
} SWITCH;

void make_switches(){
    SWITCH switch1 = createSwitch( On, 15 );
    SWITCH switch2 = createSwitch( Off, 20 );
}

SWITCH* createSwitch( ??? status, int max_amps ){
    SWITCH* new_switch = malloc( sizeof( SWITCH ) );
    new_switch->status = status;
    new_switch->max_amps = max_amps;
    return new_switch;
}

我想将匿名枚举的值传递给createSwitch()函数。有什么办法吗?

1 个答案:

答案 0 :(得分:10)

正如其他人所建议的那样,您可以简单地使用re.findall(r'...', s, flags=re.DOTALL)代替int

这是因为根据6.7.2.2/3标准(委员会草案)的C11

  

枚举器列表中的标识符被声明为类型为???的常量,并且可以在允许的任何常量出现。