#include
typedef void (*cbfun)(void);
myfun(cbfun fun)
{
int i;
for(i=0;i<10;i++)
{
fun();
}
}
void fun()
{
printf("printf from callback function!/n");
}
void main()
{
printf("printf from main function/n");
myfun(&fun);
printf("printf from main function/n");
}
第二个例子,带参数的。
#include
typedef void (*cbfun)(int);
myfun(cbfun fun)
{
int i;
for(i=0;i<10;i++)
{
fun(i);
}
}
void fun(int j)
{
printf("%d,printf from callback function!/n",j);
}
void main()
{
printf("printf from main function/n");
myfun(&fun);
printf("printf from main function/n");
}
ps:回调函数是用函数指针来实现的。通过指针告诉程序,你需要回调哪个函数。