1
我想調用一個函數,這個函數進行一些計算並返回另一個函數指針。 ANSI C
是否可以創建enum
函數類型?如果是這樣,我該如何聲明該功能?ANSI C - 函數是否可以返回另一個函數?
我想調用一個函數,這個函數進行一些計算並返回另一個函數指針。 ANSI C
是否可以創建enum
函數類型?如果是這樣,我該如何聲明該功能?ANSI C - 函數是否可以返回另一個函數?
你可能想要返回一個指向另一個函數的指針。指針的語法類似於void (*myFuncPtr)(int)
,其中myFuncPtr將是變量名稱。很可能你想創建一個typedef,而不是一直鍵入它。小例子:
#include <stdio.h>
typedef int (*PUTS_PTR)(const char*);
PUTS_PTR ret_puts() {
return puts;
}
int main() {
PUTS_PTR pFunc = ret_puts();
(*pFunc)("Hello");
}
你也可以寫函數指針調用就像pFunc("Hello")
而不是(*pFunc)("Hello");
。但在第二種語法中,您忘記初始化或檢查指針的可能性較小。
這就是我想要的,用不同的方式當然。謝謝。 –
你想從另一個函數返回一個「函數指針」? – ameyCU
yes like like that [code] void(* anotherFunc)myFunc(int a){ if(a <0)anotherFunc = adding; else anotherFunc = multiplying; return(anotherFunc); } [/ code] –