请举例说明C语言函数指针接口
时间: 2023-08-10 19:31:22 浏览: 98
下面是一个简单的例子来说明使用结构体和函数指针实现函数指针接口的方法:
```c
#include <stdio.h>
// 定义一个函数指针类型
typedef int (*Operation)(int, int);
// 定义一个结构体类型,包含一个函数指针和一个名称
typedef struct {
Operation operation;
char* name;
} MathOperation;
// 定义一个加法函数
int add(int x, int y) {
return x + y;
}
// 定义一个减法函数
int subtract(int x, int y) {
return x - y;
}
int main() {
// 初始化加法操作
MathOperation addOperation = {add, "Addition"};
// 初始化减法操作
MathOperation subtractOperation = {subtract, "Subtraction"};
int x = 10, y = 5;
// 通过调用函数指针来执行加法操作
printf("%d %s %d = %d\n", x, addOperation.name, y, addOperation.operation(x, y));
// 通过调用函数指针来执行减法操作
printf("%d %s %d = %d\n", x, subtractOperation.name, y, subtractOperation.operation(x, y));
return 0;
}
```
在上面的代码中,我们定义了一个函数指针类型`Operation`,它可以指向两个整数相加或相减的函数。然后,我们定义了一个结构体类型`MathOperation`,它包含一个函数指针和一个名称。我们可以通过初始化不同的结构体来表示不同的操作,例如加法和减法。最后,我们使用函数指针来执行相应的操作,获得计算结果并输出。这就是使用结构体和函数指针实现函数指针接口的方法。
阅读全文