2015-08-28 104 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

这就是我想要的,用不同的方式当然。谢谢。 –

相关问题