将选择哪个功能?

时间:2012-02-22 09:11:47

标签: c

我有疑问..这是我的测验中的问题..想知道这个问题的答案。

Question: 

int foo(int);
double foo(int);
double foo(double);

void bar(int value){
double score = foo(value);
}

将选择哪个函数声明?或者不属于上述情况?

3 个答案:

答案 0 :(得分:6)

C不支持重载(具有相同名称的函数)。

如果这确实是一个C ++问题,那么C ++不允许只有返回类型不同的重载(int foo(int)double foo(int))。

答案 1 :(得分:2)

不可能在C中完成。如果任何人都能够实现它,那么它将成为计算机科学领域的最大突破。

答案 2 :(得分:1)

C不支持重载。您不能拥有多个具有相同名称的功能。

您的代码将无法编译,因此有关其行为的问题未定义。

这就是为什么,例如,数学库提供适用于sin()的{​​{1}}和使用单精度double值的sinf()