函数指针与回调函数
Posted buerdepepeqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数指针与回调函数相关的知识,希望对你有一定的参考价值。
函数指针与回调函数
函数指针
函数指针是指向函数的指针变量。
通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。
函数指针可以像一般函数一样,用于调用函数、传递参数。
函数指针变量的声明:
typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的函数指针类型
eg:
#include<bits/stdc++.h>
using namespace std;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
int (*p)(int, int) = &max;
int a = 2, b = 1, c = 3, d = 0;
cout << p(a, b) << endl;
}
回调函数
回调函数是指函数指针作为某个函数的参数
函数指针变量可以作为某个函数的参数来使用的,回调函数就是一个通过函数指针调用的函数。
简单讲:回调函数是由别人的函数执行时调用你实现的函数。
#include<bits/stdc++.h>
using namespace std;
void populate_array(int *array, int arraySize, int (*getNextValue)(void)) {
for (int i = 0; i < arraySize; i++)
array[i] = getNextValue();
}
// 获取随机值
int getNextRandomValue(void) {
return rand();
}
int main() {
int myarray[10];
populate_array(myarray, 10, getNextRandomValue);
for(int i = 0; i < 10; i++) {
printf("%d ", myarray[i]);
}
printf("
");
return 0;
}
来源:https://www.runoob.com/cprogramming/c-fun-pointer-callback.html
以上是关于函数指针与回调函数的主要内容,如果未能解决你的问题,请参考以下文章