Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: 如何理解复杂的函数声明?
考虑:
char (*(*x())[5])()
我如何剖析这个表达?
我认为它是一个返回大小为 5 的数组的函数,其成员是指向不接收输入并返回 char 的函数的指针。
我对吗?
搜索“左右规则”
在你的情况下,它应该是:
x : x is a x() : function *x() : returning pointer to (*x())[5] : a 5-element array of *(*x())[5] : pointer to (*(*x())[5])() : function char (*(*x())[5])() : returning char
这些天我在 Stack Overflow 上看到了很多奇怪的声明。
当我懒惰时,我使用cdecl.org:
“将 x 声明为函数返回指向数组 5 的指针的函数返回 char 的指针”
如果没有,则有顺时针螺旋规则。<-太棒了