【发布时间】:2019-04-12 03:39:27
【问题描述】:
如果我有一个匿名枚举,有没有办法将该类型的值传递给函数?例如,
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() 函数。有没有办法做到这一点?
【问题讨论】:
-
我相信您已经想到了这一点,但我的建议是将
enum提升为全局命名类型。 -
当然可以
SWITCH *createSwitch(int status...) -
枚举值类似于整数,可以接受
status为任意类型的整数 -
用
typeof(On)替换???是一个非常糟糕的主意,原因有很多,其中最重要的一点是它没有在C 规范中提及。另见:stackoverflow.com/questions/12081502/typeof-operator-in-c -
@user3386109:我想我是盲人;你在哪里看到
typeof(On)?