c语言回调函数 参数传递
时间: 2023-07-12 10:31:25 浏览: 126
C语言函数参数传递
C语言中的回调函数通常通过函数指针实现,回调函数的参数传递可以通过以下两种方式实现:
1. 将参数作为回调函数的参数传递。
例如,定义一个回调函数指针类型为callback_func,该回调函数需要一个整型参数,可以这样定义:
```
typedef void (*callback_func)(int);
```
然后在调用回调函数时,将参数传递进去:
```
void foo(callback_func cb) {
int arg = 10;
cb(arg);
}
```
2. 将参数作为全局变量传递。
例如,定义一个全局变量g_arg,回调函数中使用该变量:
```
int g_arg;
void callback_func() {
printf("g_arg=%d\n", g_arg);
}
void foo() {
g_arg = 10;
callback_func();
}
```
需要注意的是,在多线程环境下,使用全局变量传递参数可能会发生竞争条件,因此应该使用第一种方式来传递参数。
阅读全文