#include <stdio.h>
void printNumbers(int arr[], int size, void (*callback)(int)) {
for (int i = 0; i < size; i++) {
callback(arr[i]);
}
}
void callback(int num) {
printf("%d\n", num);
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(int);
printf("size is %d\n",size);
printNumbers(arr, size, callback);
return 0;
}
上图的回调函数中打印输入的值;使用printNumbers调用回调函数,依次打印数组中的值。
#include <stdio.h>
void addNumbers(int arr[], int size, int (*callback)(int)) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += callback(arr[i]);
}
printf("Sum: %d\n", sum);
}
int callback(int num) {
return num;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(int);
addNumbers(arr, size, callback);
return 0;
}
上图的回调函数有返回值,以实现累加的功能。