/*
回调函数
*/
#include <stdio.h>
typedef int (*CALL_FUNCTION)(void *data);
/* 简单封装一下 */
typedef struct _A{
int value;
}A;
typedef struct _B{
int value;
}B;
int print(void *data, CALL_FUNCTION p_func)
{
p_func(data);
}
/* 下面的函数为具体实现 */
int print_A(void *data)
{
if(data == NULL)
return;
A *p = (A *)data;
printf("%d\n",p->value);
}
int print_B(void *data)
{
if(data == NULL)
return;
B *p = (B *)data;
printf("%d\n",p->value);
}
int main(int argc, char **argv)
{
A a = {123};
B b = {909};
print(&a, print_A);
print(&b, print_B);
return 0;
}