【发布时间】:2011-03-14 11:30:18
【问题描述】:
谁能解释一下函数重载在 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++ 编译相同的代码,它就可以工作。
谁能解释一下?
谢谢,博达·赛多。
【问题讨论】:
-
不,C 不支持重载函数。这两种语言非常不同。
标签: c overloading