在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());
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);