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

Tyl*_*den 8 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;
}
Run Code Online (Sandbox Code Playgroud)

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

P.W*_*P.W 10

正如其他人所建议的那样,您可以简单地使用int代替???

这是因为每为6.7.2.2/3C11标准(委员会草案):

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