我是 C 的初學者,我想使用具有 void 函式作為傳遞引數的 void 函式,然后我想以遞回方式呼叫它。例如void inOrder (struct node *root, void (*f) (struct node *i))
但顯然,我不能使用它,因為引數沒有回傳型別。有沒有人對如何遞回呼叫它有任何建議?謝謝!
uj5u.com熱心網友回復:
注釋中顯示的代碼void inOrder (root->leftChild, (*f) (root->leftChild))有兩個錯誤:
void不應該出現。當呼叫一個函式時,我們只需寫下它的名字,后面跟著括號中的引數。我們不宣告它的型別。- 該運算式
inOrder (root->leftChild, (*f) (root->leftChild))試圖呼叫f. 的第二個引數inOrder是一個指向函式的指標,因此傳遞一個指向函式的指標,它只是f:
inOrder(root->leftChild, f)
另請注意,您不是f遞回呼叫。f不f直接或間接呼叫。inOrder可能會呼叫自身,因此它會遞回,但它只是f簡單地呼叫,而不是遞回呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/342938.html
