ANSI C - 一个函数可以 returns 另一个函数吗?
ANSI C - can a function returns another function?
我想调用一个函数,这个函数进行一些计算,returns另一个函数指针。在 ANSI C
中可以不创建 enum
函数类型吗?如果是这样,我该如何声明该功能?
您可能想要 return 指向另一个函数的指针。指针的语法类似于 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");
。但是在第二种语法中,您忘记初始化或检查指针的可能性较小。
我想调用一个函数,这个函数进行一些计算,returns另一个函数指针。在 ANSI C
中可以不创建 enum
函数类型吗?如果是这样,我该如何声明该功能?
您可能想要 return 指向另一个函数的指针。指针的语法类似于 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");
。但是在第二种语法中,您忘记初始化或检查指针的可能性较小。