1

我想调用一个函数,这个函数进行一些计算并返回另一个函数指针。在ANSI C不创建enum函数类型的情况下可能吗?如果是这样,我该如何声明该功能?

4

1 回答 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 回答