#include <stdio.h>
typedef int (*p) (int ,int);
int sum(int a,int b)
{
return (a) + (b);
}
int callsum(p lp,int a,int b)
{
return lp(a,b);
}
void main(void)
{
int m = callsum(sum,4,7);
printf("the sum is %d/n",m);
printf("hee");
}
其中
typedef int (*p) (int ,int);是定义的一个函数指针
回调函数应该和设计相关而不是和语言相关。在分层设计中,高层次的模块会叫低层次的模块做一些事情,通常是通过函数调用。
从设计上来说,低层次的模块不应该直接调用高层次模块的函数。所以高层次模块在叫低层模块做事的时候会注册一个回调函数给低
层模块,然后低层模块做完了就调用这个函数。表现在C语言上是个函数指针