当程序中,某个功能不定时,就用函数指针代表该功能,使用时,需要函数实现什么功能,则将需要实现功能的函数赋值给函数指针,则函数指针出现的地方就能按挂接的回调函数(需要的功能函数)执行,而挂接赋值的过程可以用注册函数来实现。
函数指针通常用全局变量来指定。
例如有max(a,b),min(a,b), 开始时不定用哪个函数,则可以用函数指针全局变量unsigned int* g_func(a,b)来代替,
如:
Int (* g_func)(int a, int b) = NULL;
Int max(int a,int b);
Int min(int a,int b);
main()
{
g_func = max;
g_func(a,b); /*相当于执行max(a,b)*/
}
Max和min两个函数称为钩子函数或回调函数;
在写main函数时不知道要完成什么功能 ,则用函数指针作为接口,可以挂上不同的函数完成不同的功能;
注册函数:将钩子函数挂在已声明的全局变量函数指针上;注册函数的入参为函数指针
Install(int (*p)())
{
p = max;
}
Install(g_func)即代表g_func = max;
如果觉得《函数指针 注册函数 回调函数》对你有帮助,请点赞、收藏,并留下你的观点哦!