c - 声明一个函数指针数组,该数组以 void 作为参数并返回一个指向整数的指针数组

标签 c

这是我在采访中被问到的!

如何声明一个以 void 作为参数并返回整数指针数组的函数指针数组?

有人可以帮忙吗?

最佳答案

让我们看看...一个以 void 作为参数的函数指针 p 可以这样声明:

void (*p)(void);

返回整数指针数组的一个可能看起来像:

 int** (*p)(void);

或者,更严格地遵循“数组”的定义(这在实践中不太可能)——请注意,正如 Amir 指出的那样,C 中的函数实际上不能返回数组,但可以返回指向数组的指针( 100 个 int 指针)如下所示:

int* (*(*p)(void))[100];

由七个这样的野兽组成的数组可以表示为:

int* (*(*ptrs[7])(void))[100];

void 当然可以被删除,留给我们:

int* (*(*ptrs[7])())[100];

这可以通过优秀的 cdecl tool 来证实。 .

关于c - 声明一个函数指针数组,该数组以 void 作为参数并返回一个指向整数的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18306237/

相关文章:

c - 如何将 VSTS .lib 转换为 MinGW .a?

c - Golang C (.so) 在调用时导入分段违规

c - 如何在 Ubuntu 11.10 上使用 C 代码获取 CD/DVD 媒体上的剩余空间?

c - 函数的参数是指向声明为 const 的参数的指针,如何处理?

使用 Dynamic Prog 的加泰罗尼亚数字

c - 接收从 "supernet"发送的本地广播包

c - 如何动态填充指向我创建的结构的指针数组?

c - 如何在 x 和 y 轴上创建小行星

c - 当程序接收到 SIGTSTP 信号时会发生什么

c - 发送在循环中仅工作一次