c语言编写一个函数指针,分别指向int add(int ,int ),int sub(int,int),在主函数中调用。不使用typedef int结构
时间: 2024-12-06 08:22:51 浏览: 33
在C语言中,你可以直接定义一个函数指针变量,然后给它赋值为对应的函数地址。这里是一个例子,我们将定义一个指向两个整数相加和相减函数的指针,并在主函数中调用它们:
```c
#include <stdio.h>
// 定义函数原型
int add(int a, int b);
int sub(int a, int b);
// 函数指针类型声明
typedef int (*Operation)(int, int);
// 定义函数
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
// 主函数
int main() {
// 函数指针变量
Operation operation;
// 分别赋值给add和sub函数的地址
operation = add; // 指向add函数
printf("Addition: %d\n", operation(5, 3)); // 输出8
operation = sub; // 现指向sub函数
printf("Subtraction: %d\n", operation(5, 3)); // 输出2
return 0;
}
```
在这个示例中,`Operation` 是一个函数指针类型,`add` 和 `sub` 是实参函数。在 `main` 函数中,我们首先定义了一个 `operation` 变量并将其初始化为 `add` 的地址,之后再改变其指向为 `sub` 函数。
阅读全文