重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
看一下这个例子吧,我是这样理解的:
创新互联建站专注于南郑企业网站建设,响应式网站建设,商城网站制作。南郑网站建设公司,为南郑等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
#include
"iostream.h"
#include
"windows.h"
typedef
void
(CALLBACK
*MyFun)(void);//回调函数定义
void
CALLBACK
callback()
//
回调函数
{
cout"****callback****\n";
}
void
Call_CallBack(MyFun
mycb)
{
cout"****Call_CallBack****\n";
mycb();
cout"__________________\n";
}
void
main()
{
Call_CallBack(callback);
}
//
其他人需要修改的话只要修改callback函数里的内容就行了,一般sdk封装后都会有回调,这样他人在调用sdk的时候就可以实现回调函数里的内容。
如果你需要理论的,网上搜回调函数,内容哈多随便看
括号里只是形参 表示该函数的输入是个指针。 我可以起名叫Pfun当然也可以是Qfun 还可以是fun1. 这没什么区别。 同样的,是该函数内部当然用的也是形参定义。所以是Pfun。
typedef struct
{
int a;
void (*pshow)(int);
}TMP;
void func(TMP *tmp)
{
if(tmp-a 10)//如果a10,则执行回调函数。
{
(tmp-pshow)(tmp-a);
}
}
void show(int a)
{
printf("a的值是%d\n",a);
}
void main()
{
TMP test;
test.a = 1;
test.pshow = show;
func(test);
}
这只是举例,一般回调函数的用法为:
甲方进行结构体的定义(成员中包括回调函数的指针)
乙方定义结构体变量,并向甲方注册,
甲方收集N个乙方的注册形成结构体链表,在某个特定时刻遍历链表,进行回调。