Things break down utterly in the presence of typedefs. What is this? foo(*baz(bing,boff(*bratz)(biff)))(buff);
The “spiral rule” is just an approximation of the actual rule as defined in the standard: declaration follows usage. Even with typedefs, that declaration means “when you call baz with a bing and a pointer (named bratz) to a function of type boff(biff), then you get back a pointer to a function of type foo(buff).” It’s an extremely concise notation for expressing type information without (much) special type syntax, an…
Re: The Clockwise/Spiral Rule of C declarations
#71I'm impressed. How did you know where to start?