读书人

C语言怎么动态调用一个函数

发布时间: 2013-02-17 10:44:46 作者: rapoo

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);

读书人网 >C语言

热点推荐