写一个c++回调函数的例子
时间: 2024-05-06 17:22:10 浏览: 91
以下是一个使用回调函数的例子,该函数将一个数组作为参数并将其传递给回调函数进行处理:
```c
#include <stdio.h>
// 定义回调函数类型
typedef void (*callback)(int);
// 遍历数组并将每个元素传递给回调函数
void traverse(int arr[], int size, callback cb) {
for (int i = 0; i < size; i++) {
cb(arr[i]);
}
}
// 回调函数:打印数组元素
void print(int num) {
printf("%d ", num);
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
// 调用遍历函数,将print函数作为回调函数传递
traverse(arr, size, print);
return 0;
}
```
这个例子中,我们定义了一个回调函数类型`callback`,它接受一个整数作为参数并返回`void`。然后我们实现了一个遍历函数`traverse`,它接受一个整数数组、数组大小和一个回调函数作为参数。在`traverse`函数内部,我们使用一个循环遍历数组并将每个元素传递给回调函数`cb`进行处理。
在`main`函数中,我们定义了一个整数数组并调用`traverse`函数,将`print`函数作为回调函数传递。`print`函数被调用五次,每次传递一个数组元素作为参数,并将该元素打印出来。最终输出结果为`1 2 3 4 5`。
阅读全文