C++ 回调函数的参数怎么传递
时间: 2023-11-20 11:07:28 浏览: 68
关于C++的函数参数传递方式
C语言中回调函数的参数传递方式有两种:
1. 通过函数指针传递参数:在定义回调函数时,可以使用函数指针作为形参,通过函数指针调用回调函数时将参数传递进去。例如:
```
void callback(int arg1, char arg2) {
// 回调函数的具体实现
}
void register_callback(void (*func)(int, char)) {
// 注册回调函数
}
int main() {
register_callback(callback); // 注册回调函数
return 0;
}
```
2. 通过全局变量传递参数:在定义回调函数时,可以使用全局变量作为参数,回调函数中直接访问全局变量即可。例如:
```
int global_arg1;
char global_arg2;
void callback() {
// 回调函数的具体实现,直接访问全局变量即可
}
void register_callback(void (*func)()) {
// 注册回调函数
}
int main() {
global_arg1 = 123;
global_arg2 = 'a';
register_callback(callback); // 注册回调函数
return 0;
}
```
需要注意的是,第二种方式可能会导致代码可读性下降,同时对于多个回调函数传递不同的参数时,使用全局变量可能会产生命名冲突等问题,因此一般情况下建议使用第一种方式。
阅读全文