C语言如何实现一个函数,该函数的参数是函数指针,同时函数指针的参数也是函数指针,举例说明
时间: 2024-02-28 21:49:51 浏览: 82
C语言中关于函数指针的用法
C语言中可以通过函数指针作为参数来实现回调函数的思想。下面是一个示例,展示了如何定义一个函数,该函数的参数是函数指针,同时函数指针的参数也是函数指针:
```c
#include <stdio.h>
// 定义一个函数指针类型
typedef void (*FuncPtr)(void (*)(int));
// 定义一个函数,参数是函数指针
void callbackFunc(void (*func)(int)) {
printf("Inside callbackFunc\n");
func(10); // 调用传入的函数指针
}
// 定义一个函数,参数是整型
void printNumber(int num) {
printf("Number: %d\n", num);
}
int main() {
// 定义一个函数指针变量
FuncPtr ptr = callbackFunc;
// 调用函数,传入函数指针作为参数
ptr(printNumber);
return 0;
}
```
在上面的示例中,我们首先定义了一个函数指针类型`FuncPtr`,它指向一个没有返回值且参数为函数指针的函数。然后,我们定义了一个函数`callbackFunc`,它的参数是一个函数指针`func`。在`callbackFunc`函数中,我们调用了传入的函数指针`func`,并传入一个整数参数。接下来,在`main`函数中,我们定义了一个函数指针变量`ptr`,并将`callbackFunc`赋值给它。最后,我们调用了`ptr`函数指针,并传入了`printNumber`函数作为参数。
运行上述代码,将会输出以下结果:
```
Inside callbackFunc
Number: 10
```
阅读全文