我有一個疑問..這是我的測驗中的問題。想知道這個問題的答案。將選擇哪個功能?
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