用c语言简化上述代码
时间: 2024-11-04 21:11:17 浏览: 0
在C语言中,虽然不像面向对象的语言那样直接支持多态的概念,但你可以通过函数指针或结构体结合动态内存分配来模拟一些类似的效果。例如,可以定义一个函数指针数组,每个元素指向不同的函数实例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个函数原型
typedef void (*my_func)(int);
// 各种函数实现
void print_plus(int a) { printf("%d + ", a); }
void print_minus(int a) { printf("%d - ", a); }
int main() {
// 动态创建函数指针变量并关联函数
my_func operations[] = {print_plus, print_minus};
int num = 5;
int choice = 0; // 用户选择加法或减法
// 根据用户输入调用对应的函数
scanf("Enter operation (0 for plus, 1 for minus): %d", &choice);
if (choice >= 0 && choice < sizeof(operations)/sizeof(*operations)) {
operations[choice](num); // 调用函数指针指向的函数
} else {
printf("Invalid choice.\n");
}
return 0;
}
阅读全文