typedef定义函数指针及注册回调函数的一般步骤

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版权协议,转载请附上原文出处链接和本声明。