(转)回调函数

对指针的应用是C语言编程的精髓所在,而回调函数就是C语言里面对函数指针的高级应用。简而言之,回调函数是一个通过函数指针调用的函数。如果你把函数指针(函数的入口地址)传递给另一个函数,当这个函数指针被用来调用它所指向的函数时,我们就说这个函数是回调函数。

这里针对的是普通的函数,不包括完全依赖于不同语法和语义规则的类成员函数。

回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。要实现回调,必须首先定义函数指针。 

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int add(int a, int b)   
 5 {   
 6 return a + b;   
 7 }   
 8   
 9 typedef int (*PTRADD)(int, int);   
10   
11 int newAdd(int a, int b, PTRADD p)   
12 {   
13 return p(a, b);   
14 }   
15   
16 int main() {   
17 PTRADD p = add;   
18 int sum = newAdd(3, 3, p);   
19 printf("sum =%d
", sum);   
20 return 0;   
21 } 
原文地址:https://www.cnblogs.com/yinsua/p/3308104.html