我们如何解释下面的声明:
char (*(*f())[])();如何开发一种方便的技巧来阅读C中如此复杂甚至更复杂的声明。如果你使用了一个快速技巧,请分享。
发布于 2011-08-17 06:34:40
http://www.antlr.org/wiki/display/CS652/How+To+Read+C+Declarations提供了一个很好的教程。
发布于 2011-08-17 06:42:51
确实有一个不太为人所知的把戏。假设f是一个变量名,*、()和[]是您可以对其执行的操作。使用C运算符的优先规则来理解:
f可以应用
f()然后解除引用
*f()然后下标
(*f())[]然后解除引用
*(*f())[]然后应用
(*(*f())[])()给出一个char
char (*(*f())[])()所以f是一个返回指针的函数,指向返回char的函数的指针数组。
https://stackoverflow.com/questions/7085893
复制相似问题