定义回调函数类型
[! 函数指针重定义] typedef void (*offline_callback)(void *);
- 基础函数指针原型:void ( * )(void * )
- typedef 作用:给这个原型起别名
- 别名:offline_callback typedef void (*offline_callback)(void *);
typedef void (*offline_callback)(void *);“注册回调函数” 接口
static offline_callback g_offline_cb = NULL; // 全局回调函数指针
void register_offline_callback(offline_callback cb)
{
g_offline_cb = cb; // 保存用户传入的回调函数地址
}用户自定义回调函数
void my_offline_handler(void *arg)
{
// 这里写离线后的处理逻辑,比如保存数据、打印日志
int *data = (int *)arg; // void*可以转换为任意类型指针
printf("检测到离线!参数:%p\n", arg);
}注册
[! 函数名与函数指针的隐式转换] 函数名不是指针,但它在绝大多数场景下会 “隐式转换” 为指向该函数的函数指针—— 两者不是同一个东西,但使用时常常表现得等价。
register_offline_callback(my_offline_handler);