我想调用一个函数,这个函数进行一些计算并返回另一个函数指针。在ANSI C
不创建enum
函数类型的情况下可能吗?如果是这样,我该如何声明该功能?
问问题
51 次
1 回答
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");
. 但是在第二种语法中,您忘记初始化或检查指针的可能性较小。
于 2015-08-28T11:40:09.290 回答