推荐答案
// www.javascriptcn.com code example
#include <stdio.h>
// 定义回调函数类型
typedef void (*CallbackFunc)(int);
// 示例回调函数
void myCallback(int value) {
printf("Callback called with value: %d\n", value);
}
// 接受回调函数作为参数的函数
void performOperation(int data, CallbackFunc callback) {
// 执行某些操作
printf("Performing operation with data: %d\n", data);
// 调用回调函数
callback(data);
}
int main() {
// 使用回调函数
performOperation(42, myCallback);
return 0;
}本题详细解读
1. 函数指针的定义
在C语言中,函数指针是指向函数的指针变量。通过函数指针,可以将函数作为参数传递给其他函数,从而实现回调机制。
typedef void (*CallbackFunc)(int);
这里定义了一个名为 CallbackFunc 的函数指针类型,它指向一个返回 void 并接受一个 int 类型参数的函数。
2. 回调函数的实现
回调函数是一个普通的函数,它的签名必须与函数指针类型匹配。
void myCallback(int value) {
printf("Callback called with value: %d\n", value);
}在这个例子中,myCallback 是一个回调函数,它接受一个 int 类型的参数并打印该值。
3. 使用回调函数
在 performOperation 函数中,回调函数作为参数传递,并在适当的时候被调用。
void performOperation(int data, CallbackFunc callback) {
printf("Performing operation with data: %d\n", data);
callback(data);
}performOperation 函数接受一个 int 类型的 data 和一个 CallbackFunc 类型的 callback 参数。在函数内部,它首先打印 data,然后调用 callback 函数。
4. 主函数中的调用
在 main 函数中,performOperation 被调用,并传递了 myCallback 作为回调函数。
int main() {
performOperation(42, myCallback);
return 0;
}当 performOperation 执行时,它会调用 myCallback 函数,并传递 42 作为参数。
5. 输出结果
运行上述代码后,输出将是:
Performing operation with data: 42 Callback called with value: 42
这表明 performOperation 函数成功调用了 myCallback 回调函数,并传递了正确的参数。