对指针的应用是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 }