C++回调函数是个特别的函数
他存在的意义就是可以在函数中套用函数
例如void*类型的数据你想在当前函数打印就要把当前函数所要打印的数据类型,转化成你想要的数据类型,
这第一你增加了代码量,第二让其他开发人员也一头雾水,这是什么?
导致一个函数过于臃肿。
所以回调函数是在该函数运行时去掉我的回调,在回到我原来的函数
举例:
void MyPrint(LinkNode* data)
{
Person *p=(Person*)data;
printf("Name:%s,age:%d\n",p->name,p->age);
}
//遍历函数指针
typedef void(*PRINTNODE)(LinkNode *);
//打印
void Print_LinkList(LinkList *list,PRINTNODE print);
//打印
void Print_LinkList(LinkList *list,PRINTNODE print)
{
if(list==NULL)
{
return;
}
//辅助指针
LinkNode *pCurrent=list->head.next;
while(pCurrent!=NULL)
{
print(pCurrent);
pCurrent=pCurrent->next;
}
}
效果与当前函数直接强转相同。