我有三个函数
(1)void modify(...)
(2)void insert(...)
(3)void delete(...)
我想写个函数接受这个三个函数,相当于接受三种类型的命名,如何定义这个函数啊,怎么判断他接受的是哪个函数?
三个函数参数需要一致:
void modify(void*) void insert(void*) void delete(void*)
1:定义函数指针 typedef void(*fun_ptr)(void*);
2: 定义方法
void setFuntion(fun_ptr fun){
fun_ptr function = fun;
//之后进行需要的操作
}
为什么要知道接受的是哪个函数,如果知道的那么清楚,这种写法意义就不是很大了,当然也不是不能知道:
fun_ptr Handlers[MAX_COUNT_HANDLER]={NULL};
// 初始化函数指针数
Handlers[TYPE_0] = NULL;
Handlers[TYPE_1] =&modify;
Handlers[TYPE_2] =&insert;
Handlers[TYPE_3] =&delete;
在type和你的方法之间建立一个映射关系,type用enum完善的描述方法意图,调用方法的时候通过传递type进行调用。