利用函数指针实现函数回调
时间: 2023-12-13 16:31:02 浏览: 65
函数回调是一种常见的编程技术,它允许我们将一个函数作为参数传递给另一个函数,并在需要时调用该函数。利用函数指针实现函数回调的过程如下:
1.定义一个函数指针类型,该类型与回调函数的参数和返回值类型相匹配。
2.在需要回调的函数中,将回调函数的指针作为参数传递给另一个函数。
3.在另一个函数中,通过回调函数的指针调用回调函数。
例如,假设我们有一个函数`printNum`,它接受一个整数并将其打印到控制台上。我们还有一个函数`forEach`,它接受一个整数数组和一个函数指针,并对数组中的每个元素调用该函数。我们可以使用函数指针实现`printNum`的回调,如下所示:
```c
#include <stdio.h>
void printNum(int num) {
printf("%d\n", num);
}
void forEach(int *arr, int size, void (*callback)(int)) {
for (int i = 0; i < size; i++) {
callback(arr[i]);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
forEach(arr, 5, printNum);
return 0;
}
```
在上面的示例中,我们定义了一个函数`forEach`,它接受一个整数数组、数组大小和一个函数指针`callback`。`forEach`函数使用`for`循环遍历数组中的每个元素,并通过回调函数指针`callback`调用回调函数。在`main`函数中,我们定义了一个整数数组`arr`,并将其传递给`forEach`函数,同时将`printNum`函数的指针作为回调函数传递给`forEach`函数。