int (* g_pFun) (int x,int y);
int Max(int x,int y){
return x>y?x:y;
}
int Min(int x,int y){
return x>y?y:x;
}
int RegFun(int (* pFun)(int x,int y)){
g_pFun = pFun;
return 0;
}
int main(int argc, const char *argv[])
{
int a = 10; int b = 15;
int r;
RegFun(Max);
r = g_pFun(a,b);
printf("%d\n",r);
RegFun(Min);
r = g_pFun(a,b);
printf("%d\n",r);
return 0;
}
定义一个全局变量,函数指针g_pFun,然后写两个功能函数,一个是返回最大值Max,一个是返回最小值Min。这两个就是钩子函数,将指针指向他们中的一个的时候,就叫做挂钩子;