回调函数
介绍
- 函数指针变量可以作为某个函数的参数来使用的,回调函数就是一个通过函数指针调用的函数。
- 简单的讲:别的方法调用了传入的函数(通过函数指针完成)。
案例
使用回调函数的方式,给一个整型数组int arr[10]赋10个随机数。
#include "stdio.h"
#include "stdlib.h"
void initArray(int *array, int arraySize, int (*function)()) {
for (int i = 0; i < arraySize; ++i) {
//遍历数组,每次执行*function生成随机数
//这里的 getRandom()方法就是通过函数指针调用(*function),这就叫回调函数
array[i] = (*function)();
}
}
//返回一个随机整数
int getRandom() {
return rand();
}
void main() {
int arr[10];
//getRandom指的是getRandom()方法的地址
initArray(arr, 10, getRandom);
for (int i = 0; i < 10; ++i) {
printf("%d\t", arr[i]);
}
//41 18467 6334 26500 19169 15724 11478 29358 26962 24464
}