一定义
指向函数的指针。
二作用
实现回调。调用者通过被调用者的函数地址来调用被调用者的函数,调用者除了关注被调用者的函数地址外不需要关注被调用者的任何信息。
三应用场景代码
#include <stdio.h>
class CHardWare
{
public:
CHardWare();
~CHardWare();
void (*NotifyUiLayer)(char* pMsg);
void ReadUsbData();
};
CHardWare::CHardWare()
{
}
CHardWare::~CHardWare()
{
}
void CHardWare::ReadUsbData()
{
int nTimes = 10;
for ( int i = 0; i < nTimes; i++ )
{
char szTemp[100];
sprintf(szTemp, "%s %d", "从usb设备读到数据",i);
NotifyUiLayer(szTemp);
}
}
class CUi
{
public:
CUi();
~CUi();
static void UiRecvMsg(char* pMsg);
};
CUi::CUi()
{
}
CUi::~CUi()
{
}
void CUi::UiRecvMsg(char* pMsg)
{
char szTemp[100];
sprintf(szTemp, "%s%s\n", "UI层收到底层消息:",pMsg);
printf(szTemp);
}
void main()
{
CHardWare mCHardWare;
mCHardWare.NotifyUiLayer = CUi::UiRecvMsg;
mCHardWare.ReadUsbData();
getchar();
}