定义一个指针指向一个回调函数,举例实现回调函数
时间: 2023-08-16 14:15:51 浏览: 95
指向函数的指针
当我们定义一个指针指向一个回调函数时,我们需要先声明回调函数的类型,然后声明一个指向该类型的指针。下面是一个简单的示例:
```c
#include <stdio.h>
// 声明回调函数类型
typedef void (*CallbackFunc)(int);
// 回调函数
void callback(int value) {
printf("Callback called with value: %d\n", value);
}
// 使用回调函数的函数
void performCallback(CallbackFunc func, int value) {
func(value);
}
int main() {
// 声明并初始化回调函数指针
CallbackFunc funcPtr = callback;
// 使用回调函数指针调用回调函数
performCallback(funcPtr, 42);
return 0;
}
```
在上面的示例中,我们首先使用 `typedef` 关键字定义了一个名为 `CallbackFunc` 的类型,它是一个指向返回类型为 `void`,参数类型为 `int` 的函数的指针。然后,我们声明了一个名为 `callback` 的函数,它会在被调用时打印传入的值。接着,我们定义了一个名为 `performCallback` 的函数,它接受一个回调函数指针和一个整数值,并调用该回调函数。最后,在 `main` 函数中,我们声明并初始化了一个回调函数指针 `funcPtr`,将其指向 `callback` 函数,并使用 `performCallback` 函数调用了这个回调函数。
运行上述代码会输出:
```
Callback called with value: 42
```
阅读全文