嵌入式之函数指针和回调函数
概念
函数指针即指向函数的指针
通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。
函数指针可以像一般函数一样,用于调用函数、传递参数。
函数指针的定义方式为:
函数返回值类型 (* 指针变量名) (函数参数列表);
int (*p)(int a, int b)
作用
一是可以作为参数传递给另一个函数;回调函数:将一个函数指针作为参数传递给其它函数。后者将“回调”用户函数。
关于typedef 函数指针的用法
int add(int a, int b) {
return a + b;
}
typedef int (PTypeFun1)(int, int); // 声明一个函数类型
typedef int (*PTypeFun2)(int, int); // 声明一个函数指针类型 PtypeFun2变成了类型
int (*padd)(int, int); // 传统形式,定义一个函数指针变量 ,这里只是一个指针
int main() {
PTypeFun1 *pTypeAdd1 = add;
PTypeFun2 pTypeAdd2 = add;
padd = add;
cout << pTypeAdd1(1, 2) << endl;
cout << pTypeAdd2(1, 2) << endl;
cout << padd(1, 2) << endl;
return 0;
实例: 函数指针