我有疑问..这是我的测验中的问题..想知道这个问题的答案。
Question:
int foo(int);
double foo(int);
double foo(double);
void bar(int value){
double score = foo(value);
}
将选择哪个函数声明?或者不属于上述情况?
答案 0 :(得分:6)
C不支持重载(具有相同名称的函数)。
如果这确实是一个C ++问题,那么C ++不允许只有返回类型不同的重载(int foo(int)
和double foo(int)
)。
答案 1 :(得分:2)
不可能在C中完成。如果任何人都能够实现它,那么它将成为计算机科学领域的最大突破。
答案 2 :(得分:1)
C不支持重载。您不能拥有多个具有相同名称的功能。
您的代码将无法编译,因此有关其行为的问题未定义。
这就是为什么,例如,数学库提供适用于sin()
的{{1}}和使用单精度double
值的sinf()
。