我是初學者,所以如果我超出了任何規則,我很抱歉。這是我的問題。C中功能的默認參數 -
我在代碼塊上使用GCC編譯器,並且有一些特殊的東西我注意到了一段特定的代碼。我希望有人能夠闡明這一點。
int main()
{
Tree *t;
//some operations on the tree
traverse();// No parameter is passed here.
...
}
void traverse(Tree *t)
{
..
}
在以下代碼中,函數traverse()正確執行。我的問題是爲什麼?我不確定這一點,但如果一個函數沒有聲明,它的默認類型就變成了int。現在,編譯器不僅在編譯時抑制了錯誤,還正確地將參數't'提供給了函數traverse()。
這是因爲智能編譯器的設計?
所以一般來說:我的問題是 - 如果遇到尚未聲明的方法,編譯器會默認使用哪些行爲?更重要的是,它如何「知道」我想傳遞哪個參數?
對於您所知道的,我可能有三個「Tree *」實例:t1,t2和t3。那編譯器會通過哪一個呢?
我試着在Google上尋找,但尚未找到明確的來源。
謝謝你的時間。 :)
這是不正確的,只有偶然的「作品」。 C沒有默認參數。 – chill