可能重复:
function overloading in C
Does C support overloading ?
任何人都可以解释函数重载是否在C中工作?
我尝试过这个并没有用:
#include <stdio.h>
int f(int val) {
printf("f int\n");
return 5;
}
int f(char *val) {
printf("f char *\n");
return 6;
}
int main() {
f(5);
f("moo");
}
gcc C编译器说:
overload.c:8: error: conflicting types for 'f'
overload.c:3: error: previous definition of 'f' was here
但是,如果我在C ++中编译相同的代码,它就可以工作。
任何人都可以解释一下吗?
谢谢,Boda Cydo。
答案 0 :(得分:9)
不,C没有功能重载。
答案 1 :(得分:3)
函数重载是C ++的附加功能之一,通常被称为“C ++作为更好的C”。
它与C ++的面向对象特性无关。