……
struct MyStruct{
char* FunName;
void (*FunAddr)();
} FunRcd[FUN_NUM];
……
……
void Fun0();
void Fun1();
……
……
FunRcd[0].FunName="Fun0";
FunRcd[0].FunAddr=&Fun0;
FunRcd[1].FunName="Fun1";
FunRcd[1].FunAddr=&Fun1;
……
遍历所有FunRcd的元素,比较FunName,找到相符项,假定下标为Item,调用(*FunRcd[Item].FunAddr)()。这种做法的缺点是所有函数都要有相同的参数和返回值 :(
不知有无其它更好的方法……
struct MyStruct{
char* FunName;
void (*FunAddr)();
} FunRcd[FUN_NUM];
……
……
void Fun0();
void Fun1();
……
……
FunRcd[0].FunName="Fun0";
FunRcd[0].FunAddr=&Fun0;
FunRcd[1].FunName="Fun1";
FunRcd[1].FunAddr=&Fun1;
……
遍历所有FunRcd的元素,比较FunName,找到相符项,假定下标为Item,调用(*FunRcd[Item].FunAddr)()。这种做法的缺点是所有函数都要有相同的参数和返回值 :(
不知有无其它更好的方法……
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货