1. 函数指针:void (*) () 【左边的*是函数指针生命的关键】
首先函数指针是一个指针。存储的是一个函数的地址。
写段代码了解下函数指针。
typedef void(*Fun)(int,int); //定义函数指针类型
void min(int a,int b);
void max(int a,int b);
void min(int a,int b)
{
int minvalue=a<b?a:b;
std::cout<<"min value is "<<minvalue<<"\n";
}
void max(int a,int b)
{
int maxvalue=a>b?a:b;
std::cout<<"Max value is "<<maxvalue<<"\n";
}
int _tmain(int argc, _TCHAR* argv[])
{
Fun pFun=NULL; //定义函数指针变量pFun
//pFun=min;//两种赋值方式都支持
pFun=&min;
pFun(1,2);//这里获得最小值
//pFun=max;
pFun=&max;
pFun(1,2);//这里获得最大值
return 0;
}
2.回掉函数 函数指针式是我们自己去调用函数,回掉函数是系统自己去调用。
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。