回调函数就是:将一个函数的地址传给一个另外函数,然后在另外一个函数中调用这个函数。回调函数的好处就是:可以做到封装,虽然c是面向过程的语言,但是面向对象的一些特性用c可以实现。
eg:
#include "stdio.h"
#include "node.h"
//类型无关的链表查找
int compare (void const * a,void const *b) {
if (*(int *)a == *(int *)b) {
return 0;
}else {
return 1;
}
}
Node * search_list (Node *node,void const *value,int (*compare)(void const *a,void const *b)) {
while (node != NULL) {
if ((*compare)(&node->value,value) == 0) {
break;
}
node = node->link;
}
return node;
}