2015-08-28 102 views
1

我想調用一個函數,這個函數進行一些計算並返回另一個函數指針。 ANSI C是否可以創建enum函數類型?如果是這樣,我該如何聲明該功能?ANSI C - 函數是否可以返回另一個函數?

+0

你想從另一個函數返回一個「函數指針」? – ameyCU

+0

yes like like that [code] void(* anotherFunc)myFunc(int a){ if(a <0)anotherFunc = adding; else anotherFunc = multiplying; return(anotherFunc); } [/ code] –

回答

0

你可能想要返回一個指向另一個函數的指針。指針的語法類似於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");。但在第二種語法中,您忘記初始化或檢查指針的可能性較小。

+0

這就是我想要的,用不同的方式當然。謝謝。 –

相關問題