用简单入门的c语言解决上述问题
时间: 2024-10-25 12:17:09 浏览: 11
c语言入门编程之数学问题最小差值.zip
在C语言中,虽然不像面向对象的语言那样直接支持多态,但你可以通过函数指针或者结构体和共用体间接模拟这种效果。下面是一个简单的例子,展示如何通过函数指针实现方法重载:
```c
#include <stdio.h>
// 函数指针声明,表示接收整数并返回值
typedef int (*IntFunc)(int);
void print(int num) {
printf("Integer: %d\n", num);
}
double printDouble(double num) {
printf("Double: %.2f\n", num);
}
int main() {
IntFunc func; // 定义一个指向函数的指针
// 动态绑定:根据传入的参数类型选择合适的函数
func = print; // 使用print函数指针
func(5); // 输出 "Integer: 5"
func = printDouble; // 改变func指针,指向printDouble函数
func(3.14); // 输出 "Double: 3.14"
return 0;
}
```
在这个例子中,`print` 和 `printDouble` 分别是两个不同的函数,它们都有相同的名称,但处理的数据类型不同。通过将函数名赋给函数指针 `func`,我们可以在运行时动态地改变它的行为。
阅读全文