C语言如何动态调用一个函数
想请教个问题,在写一个东西要调用好多函数,函数名,我想配在数据库里面,现在不知道怎么去根据函数名调用函数,本来想用函数指针,可是函数名读出来以后,光知道名字,不知道函数的起始地址啊。。求教。。
[解决办法]
这个很简单啊,你做一个函数名到函数指针的映射,然后拿着这个变量的值去获取函数指针,就可以了呀,
typedef void (*functor)(param);
struct pair
{
char *name;
functor process_fun;
};
struct pair fun_map[100] = {{name1, fun1}, {name2, fun2}.......};
然后写一个函数实现根据名称查找函数:
functor get_func(char *name);
最后的使用就可以这样:
char *name = "process_case1"
functor p = get_func(name);
return p(param);