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");。但是在第二种语法中,您忘记初始化或检查指针的可能性较小。