最简单理解:回调函数本质是一个函数指针,只是定义个函数的指针 返回值和参数,实现的话需要在用的时候实现

假如在一个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(),这样就可以异步处理库传出来的数据,而无需忙等待

posted on 2020-05-11 18:24  kasader  阅读(172)  评论(0)    收藏  举报