问题部分:
编写两个函数(用“C”语言)来覆盖以下场景:
初始化函数
该函数有两个参数:一个类型名称,作为“char *”,以及一个函数指针(指向用户定义的“回调”函数)。此初始化函数存储类型名称和函数指针之间的关联,以供稍后定义的“调度”函数使用。(虽然如果您不清楚另一种存储关联的方法,您可以使用全局变量来存储此存储,您也可以添加第三个参数来处理非全局存储。)此函数被多次调用,一次对于每种类型。
调度功能
给定类型名称和作为该类型示例的变量的“void *”,使用存储在上述初始化函数中的关联函数,通过将“void *”指针传递给给定类型的关联函数. 关联函数的返回值(作为“void *”)由调度函数返回。
有第三种函数类型,用户定义(关联)函数,但您没有为此编写代码。
这个问题你清楚吗?(问题张贴到笔记,你的问题给我,在聊天...,请。)
在尝试编写这些函数的主体之前,最好先同意第一个初始化的数据结构,然后是两者的原型。
我的问题部分:
我在函数指针和分布函数方面探索了很多,我想我已经了解了这两个主题,我的问题是我不太明白上面的问题,它要求我做什么?有人可以向我解释一下,以便我可以编码。
提前致谢!
以下是我起草的一些代码:
typedef char *type;
typedef void (*pt2_dispatch) (void*);
// use a structure to store association
typedef struct{
type name;
pt2_dispatch entry;
}dispatch;
dispatch disp_list[N];
dispatch* tmp = disp_list;
void initial_func(type t, pt2_dispatch f){
tmp.name = t;
tmp.entry = f;
tmp++;
}
void* dispatch_func(pt2_dispatch g){
}
// I couldn't get what should I filled in dispatch_func(){...}