当前位置: 技术问答>linux和unix
写了个简单的回调函数,望高手指点
来源: 互联网 发布时间:2016-11-01
本文导语: #include #include #include typedef void (*callback_t)(void *); typedef struct func_s{ callback_t say_hello; }func_t; func_t *g_func_p; void register_callback(callback_t f) { g_func_p->say_hello = f; } void say_hello(void *str) { printf("Hello %s...
#include
#include
#include
typedef void (*callback_t)(void *);
typedef struct func_s{
callback_t say_hello;
}func_t;
func_t *g_func_p;
void register_callback(callback_t f)
{
g_func_p->say_hello = f;
}
void say_hello(void *str)
{
printf("Hello %sn", (const char *)str);
}
void do_event(void *para)
{
g_func_p->say_hello(para);
}
int main(void)
{
g_func_p = (func_t *)malloc(sizeof(func_t));
register_callback(say_hello);
do_event("cyq");
return 0;
}
|
干得不错!
一般回调函数是放在DLL中,是吗?
这样才能真正体现回调。
一般回调函数是放在DLL中,是吗?
这样才能真正体现回调。
|
就是这样了,如楼上所说,再加上dlopen/dlsym的运用就好了,嗯还有创建个so,其实很简单。
Good luck!
Good luck!