今天在学c的函数指针时候,了解到Java的接口回调源于此,对接口回调有进一步了解,故有此记。
c中把一个函数指针参数作为函数的参数传递,类似于java中的回调函数。
函数指针案例:
int add(int a, int b){
return a + b;
}
int minus(int a, int b){
return a - b;
}
//typedef;
//msg函数需要传递一个函数指针参数
//类似于java中的回调函数
void msg(int(*func_p)(int a, int b), int m, int n){
printf("执行一段代码...\n");
printf("执行回调函数...\n");
int r = func_p(m, n);
printf("执行结果:%d\n", r);
}
void main(){
//加法
msg(add, 10, 20);
//减法
msg(minus, 50, 10);
getchar();
}
java中回调:
public void loadData(DataReQuestListener listener){//java中回调传递一个listener对象
//回调
if(listener != null){
listener.onComplete(data);
}
}