我有一个疑问..这是我的测验中的问题。想知道这个问题的答案。将选择哪个功能?
Question:
int foo(int);
double foo(int);
double foo(double);
void bar(int value){
double score = foo(value);
}
哪个函数声明将被选中?或者它不是以上的?
我有一个疑问..这是我的测验中的问题。想知道这个问题的答案。将选择哪个功能?
Question:
int foo(int);
double foo(int);
double foo(double);
void bar(int value){
double score = foo(value);
}
哪个函数声明将被选中?或者它不是以上的?
C不支持重载(具有相同名称的函数)。
如果这实际上是一个C++问题,那么C++不允许只有返回类型不同的重载(int foo(int)
和double foo(int)
)。
+1答案将是'以上都不会编译'。 – jv42 2012-02-22 09:16:33
C不支持重载。你不能有多个同名的函数。
你的代码不会编译,因此它的行为方式的问题是未定义的。
这就是为什么,例如,数学库同时提供sin()
上double
作品,并使用单精度float
值而不是sinf()
。
这是不可能的,如果任何人能够实现它,那么这将是计算机科学的最大突破。
无,它不会编译。 – jv42 2012-02-22 09:16:48