最简单理解:回调函数本质是一个函数指针,只是定义个函数的指针 返回值和参数,实现的话需要在用的时候实现
假如在一个libXXX.so中定义好了这个函数指针,并且想通过它来向主程序传递数据
头文件
comm.h
.......
typedef void( *REALDATACALLBACK)();
.......
库文件
libXXX.c
......
int GetData(void *shm,REALDATACALLBACK data_cb)
{
.......
data_cb(1, 1 ,"11111", 1, 1, 1, puer);
.......
return 0;
}
......
库的调用者
main.c
void data()
{
printf("get data");
}
int main()
{
REALDATACALLBACK cb;
cb = data;
}
这样在libXXX执行到GetData接口的时候,就会调用到主函数的data(),这样就可以异步处理库传出来的数据,而无需忙等待