看蓝牙协议栈的时候遇到了回调函数,之前就没有用过,函数指针、函数指针数组、回调函数这类玩意,特总结学习如下:
1、指针函数(百度百科)
概念:指针函数是指带指针的函数,即本质是一个函数,指针函数返回类型是 某一类型的指针。
定义格式:类型标识符
*函数名(参数列表)
int *funcptr (int,int);
2、函数指针(百度百科)
概念:函数指针是指向函数的指针变量,因而“函数指针”本身首先是指针变量,只不过该指针变量指向函数。每一个函数都有一个入口地址,就像数组名是指向数组中第一个元素的地址一样,函数名也是指向函数的地址。
定义格式:类型标识符 (*函数名)(参数列表)
int (*f) (int,int);//声明一个函数指针a
int funcptr (int,int);//声明一个函数b
f= funcptr;//将funcptr函数的首地址赋给指针f
或者f= &funcptr;
函数指针a和函数b的返回类型,参数类型必须一致才能赋值
3、函数指针数组
4、回调函数(百度百科)
概念:回调函数就是一个通过函数指针调用的函数。如果你把函数的地址(指针)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
参考链接:
http://blog.chinaunix.net/uid-17079336-id-2832440.html
http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html
http://www.cnblogs.com/gmh915/archive/2010/06/11/1756067.html
|