0
A(int a,int c,int d=1);
A(int a ,int b,int d){
....
}
main(){
A(1,2);
}
在上面的C++代碼函數A()中被調用eventhough參數的數字是不一樣的。 可能是什麼原因函數被調用,即使它具有變量no參數?
A(int a,int c,int d=1);
A(int a ,int b,int d){
....
}
main(){
A(1,2);
}
在上面的C++代碼函數A()中被調用eventhough參數的數字是不一樣的。 可能是什麼原因函數被調用,即使它具有變量no參數?
結果取決於您使用的是哪個版本的C. C89以前的編譯器可能編譯代碼,但c89編譯器或更高版本會將參數不匹配視爲錯誤。
請注意,即使代碼應該編譯,A
中任何對fun
的引用都會導致未定義的行爲。
C中的函數只能通過它們的名稱來標識,所以參數列表與標識函數無關。因此,在C中不能重載。在C程序中只能有一個名爲A
的函數。
請創建一個[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)並向我們顯示。另外,它是C還是C++?這兩種語言的行爲有所不同。 – 2015-02-06 09:27:33
也許某處有重載? – LPs 2015-02-06 09:28:18
無法重現:http://ideone.com/xu8dtr。 – Jack 2015-02-06 09:29:22