回调函数的经典代码使用
Posted 镜花水月小朋友
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回调函数的经典代码使用相关的知识,希望对你有一定的参考价值。
#include "stdio.h"
#include "stdlib.h"
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
typedef int (*fcb_fun)(int a,int b);
typedef struct mydata
{
int a,b;
fcb_fun fcb;
}mydata_t;
mydata_t *mydata_create(fcb_fun out_fcb)
{
mydata_t *data = (mydata_t *)malloc(sizeof(mydata_t));
data->fcb = out_fcb;
data->a = 0;
data->b = 0;
return data;
}
void mydata_release(mydata_t *data)
{
free(data);
}
void mydata_operate(mydata *data)
{
int c =data->fcb(data->a,data->b);
printf("mydata inner operate %d \\n",c);
}
int main(void)
{
mydata_t *data =mydata_create(add);
data->a =10;
data->b =3;
mydata_operate(data);
data->fcb = sub;
mydata_operate(data);
mydata_release(data);
return 0;
}
使用机制
以上是关于回调函数的经典代码使用的主要内容,如果未能解决你的问题,请参考以下文章