1、typedef定义一个自定义类型的函数指针
2、定义及初始化函数指针并将指针赋值为NULL
3、定义注册函数,将入参的函数指针赋值给第2步我们定义的函数指针变量(该指针一般为全局变量,至少本文件全局可见)。
4、编写我们自定义类型函数指针对应的函数实现。
5、main函数中先注册回调函数,然后使用全局的函数指针即可调用我们已注册的第4步编写的函数实现。
/面朝大海0902/
具体实例如下:
#include<stdio.h>
typedef void (*my_function_CallBackFun)(int);
my_function_CallBackFun my_function = NULL;
static void my_function_register_cb(my_function_CallBackFun cb)
{
my_function = cb;
}
static void my_function_handler(int arg)
{
if(NULL != my_function)
my_function(arg);
}
/*面朝大海0902*/
void my_function_callback(int argc )
{
printf("function callback =%d \r\n",argc);
}
void main(int argc, char* argv[])
{
my_function_register_cb(my_function_callback);
my_function_handler(666);
}
运行结果:
root@ubuntu:~/temp$ ./typedef
function callback =666
/面朝大海0902/
版权声明:本文为lihuan680680原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。