C中的函数指针语法

时间:2013-08-09 11:43:54

标签: c function-pointers

我正在学习C,特别是函数指针,我想我理解基础知识。

然而,这种语法让我感到困惑,我不知道该怎么读。我通过cdecl运行这个并尝试一遍又一遍地阅读它但是我不确定如何处理它。

char (* ( *f())[])();

我已经尝试编译它并且它有效。 我意识到这里有一个指向函数的指针,并且它本身返回一个函数指针 - 但是,我不知道如何真正读取它。我去open-std检查规范,但无法找到函数指针的函数指针的确切语法。

如果有人可以为我解决这个问题 - 或者告诉我如何自己解决这个问题,我会非常感激。解答如何在将来解决这些问题的答案的额外要点。我尝试在谷歌和这里搜索类似的问题,但却无法找到任何复杂的问题。

1 个答案:

答案 0 :(得分:6)

嗯,以下可以提供帮助

f                     // identifier f
f()                   // is a function
*f()                  // that returns a pointer
(*f())[]              //  to an array
*(*f())[]             //  of pointers
(*(*f)[])()           // to functions 

char (* ( *f())[])(); // returning char.