淘先锋技术网

首页 1 2 3 4 5 6 7

typedefstruct{inta;void(*pshow)(int);}TMP;voidfunc(TMP*tmp){if(tmp->a>10)//如果a>10,则执行回调函数。{(tmp->pshow)(tmp->a);}}voidshow(inta){printf("a的值是%d\n",a);}voidmain(){TMPtest;test.a=1;test.pshow=show;func(&test);}这只是举例,一般回调函数的用法为:甲方进行结构体的定义(成员中包括回调函数的指针)乙方定义结构体变量,并向甲方注册,甲方收集N个乙方的注册形成结构体链表,在某个特定时刻遍历链表,进行回调。