2011-05-18 79 views
1

我遇到了一些麻烦读一个程序,它看起来像这样一行:混淆常量语法

char* const *(*next)(); 

我觉得next是一个指向函数返回一个指向const指针char ,但我仍然有点困惑。如果有人能够尽快回答这个问题,那就太棒了!

+0

它可以帮助阅读签名从右到左尤其是与“奇怪”的指针,因为这 – Skurmedel 2011-05-18 09:43:55

回答

2

char* const* (*next)();

您声明称为next的函数指针返回char* const*(指针char* const)。你是对的(:

用法:

char* const* ret = next();char* const* ret = (*next)();

+1

需要一个非特定数量的参数,而不是“没有参数” – pmg 2011-05-18 11:44:02

5

cdecl可以帮助您了解更复杂的声明中C.

+3

给一个男人一个钓鱼杆,他可以阅读最可怕的复杂类型声明可想而知。 – 2011-05-18 10:47:48