回调函数是指一个函数把一个函数指针当作参数传入,然后在该函数内调用函数指针指向的函数
而函数指针的参数如果是void*,那么就可以很灵活的在一函数里面处理不同类型的参数。
一下为一个简单的函数实现
typedef int (*func)(const void*, const void*);
func compare;
/*
在一个链表里面查询值为 *vpParama 的节点
此函数实现了不拘束于要查询值的类型
stpNode 为头节点
*/
Node* search(Node* stpNode, const void* vpParama, func compare)
{
Node* stpResult;
while(stpNode)
{
if(!cpmpare(&stpNode->value,vpParama))
{
stpResult = stpNode;
break;
}
stpNode = stpNode->next;
}
return stpResult;
}