回调函数是一个函数指针,它作为参数传递给另一个函数,在特定的条件下被调用。使用typedef可以简化回调函数的定义和使用。
下面是一个使用typedef定义回调函数的示例:
```c
// 声明回调函数类型
typedef int (*CallbackFunc)(int, int);
// 定义一个函数,它接受一个回调函数作为参数
int doSomething(int a, int b, CallbackFunc callback) {
int result = a + b;
// 调用回调函数
result = callback(result, result);
return result;
}
// 定义一个回调函数,它将参数加1并返回
int addOne(int a, int b) {
return a + b + 1;
}
int main() {
// 使用回调函数
int result = doSomething(1, 2, addOne);
printf("result = %d\n", result); // 输出4
return 0;
}
```
在上面的示例中,我们使用typedef定义了一个回调函数类型CallbackFunc,它接受两个int类型的参数并返回一个int类型的结果。然后我们定义了一个函数doSomething,它接受三个参数:两个int类型的参数和一个回调函数CallbackFunc类型的参数。在doSomething函数内部,我们调用了回调函数callback,并将结果作为doSomething函数的返回值。
最后,我们定义了一个回调函数addOne,它将参数加1并返回。在main函数中,我们使用doSomething函数并将addOne函数作为回调函数传递给它。