char const (*next)();
Table 3-1. Solving a Declaration Using the Precedence Rule
Rule to
applyExplanationA First, go to the variable name, "next", and note that it is directly enclosed by
parentheses.B.1 So we group it with what else is in the parentheses, to get "next is a pointer to...".
B Then we go outside the parentheses, and have a choice of a prefix asterisk, or a postfix
pair of parentheses.
B.2 Rule B.2 tells us the highest precedence thing is the function parentheses at the right, sowe have "next is a pointer to a function returning..."
B.3 Then process the prefix "*" to get "pointer to".
C Finally, take the "char * const", as a constant pointer to a character.
Then put it all together to read:
"next is a pointer to a function returning a pointer to a const pointer-to-char"
and we're done. The precedence rule is what all the rules boil down to, but if you prefer something a
little more intuitive, use Figure 3-3.
Figure 3-3. How to Parse a C Declaration