這個問題幾乎說明了一切。C:如何使用單個函數指針數組來計算具有可變參數計數的函數?
我不知道如何做到這一點,並沒有任何地方靠近任何工作。
這裏的一些功能。例如:
add(int x, int y) {
return x+y;
}
,並
mean(int x1, int y1, int x2, int y2) {
return (x1 + y1 + x2 + y2)/4;
}
到目前爲止,我已經使用的typedef既試過,但我想不出如何使一些點之一任一種類型:
typedef int (*mathfunc2)(int x, int y);
typedef int (*mathfunc4)(int x1, int y1, int x2, int y2);
????? func_table[2] = {add, mean};
這就是訣竅!謝謝你,先生。我希望能夠記住這一點,如果我獲得了15個聲望並給你一個向上箭頭:) – vaughanj
由於參數的原因,我在印象函數指針的行爲與常規的空指針不同。你不能混合函數指針和不同的參數,因爲堆棧在清理時會損壞。我誤解了一些東西嗎? – Ioan
@Ioan:您必須通過一個與聲明的函數類型兼容的指針來調用函數 - 這意味着如果您將函數指針轉換爲不同的類型進行存儲,則必須將其轉換回正確的類型以調用功能。這個答案中的例子是這樣做的。 – caf