首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-02-17 
C语言如何动态调用一个函数想请教个问题,在写一个东西要调用好多函数,函数名,我想配在数据库里面,现在不知

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

热点排行