C++设置一个回调函数
时间: 2023-03-06 10:16:20 浏览: 135
在 C 语言中,可以通过函数指针来实现回调函数的设置。具体的实现步骤如下:
1. 定义回调函数的函数指针类型。
```c
typedef void (*callback_function)(int);
```
上面的代码定义了一个名为 `callback_function` 的函数指针类型,该函数指针类型指向一个无返回值、一个整数参数的函数。
2. 在需要调用回调函数的地方,使用回调函数指针调用回调函数。
```c
void do_something(callback_function callback) {
// 做一些事情
int result = 42;
// 调用回调函数
callback(result);
}
```
上面的代码定义了一个名为 `do_something` 的函数,该函数接受一个 `callback_function` 类型的函数指针作为参数,并在函数中调用了该回调函数。
3. 在需要注册回调函数的地方,将回调函数的函数指针传递给需要调用回调函数的函数。
```c
void my_callback(int result) {
printf("My callback was called with result: %d\n", result);
}
int main() {
// 注册回调函数
callback_function callback = &my_callback;
// 调用 do_something 函数,并传递回调函数的函数指针
do_something(callback);
return 0;
}
```
上面的代码定义了一个名为 `my_callback` 的回调函数,该回调函数会在 `do_something` 函数中被调用。在 `main` 函数中,将回调函数的函数指针传递给 `do_something` 函数,以便在 `do_something` 函数中调用该回调函数。当 `do_something` 函数完成后,回调函数将被调用,并输出结果。
需要注意的是,回调函数的参数和返回值类型需要根据实际需求进行定义,并且在注册回调函数时,需要使用 `&` 运算符获取回调函数的函数指针。
阅读全文