……
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)()。这种做法的缺点是所有函数都要有相同的参数和返回值 :(
不知有无其它更好的方法……