C语言中使用回调函数

在C/C++项目中如何使用回调函数

typedef void (*callBackFuntion)(uint16_t channelId,uint16_t length,uint8_t *data);
static callBackFuntion g_callBack;
// 注册回调函数
void initCallBack(callBackFuntion callBack)
{
     g_callBack = callBack;
}
// 触发回调,调用该函数,即可在回调函数中响应数据
void sendDataEvent(uint16_t channelId, uint16_t length, uint8_t *data)
{
	if (g_callBack)
	{
		g_callBack(channelId, length, data);
	}
}
// 回调函数定义
void BlueHelperData(uint16_t channelId, uint16_t length, uint8_t *data)
{
    printf(" [threadId]:%lu ->", pthread_self());
    /*channelId为协议中读取值的通道,length为长度,value为值*/
    printf(" [channelId = 0x%04x](length = %u bytes) value: ", channelId, length);
    for (int i = 0; i < length; i++)
    {
        printf("%02x ", data[i]);
    }
    printf("\n");
}

// 初始化
initCallBack(BlueHelperData);
// 调用
sendDataEvent(0,0,1);

你可能感兴趣的:(c语言,开发语言,c++)