[This was posted to comp.lang.c by its author, David Anderson, on 1994-05-06.]

The ``Clockwise/Spiral Rule''

By David Anderson

There is a technique known as the ``Clockwise/Spiral Rule'' which enables any C programmer to parse in their head any C declaration!

There are three simple steps to follow:

  1. Starting with the unknown element, move in a spiral/clockwise direction; when ecountering the following elements replace them with the corresponding english statements:


    • [X] or []

      => Array X size of... or Array undefined size of...

    • (type1, type2)

      => function passing type1 and type2 returning...

    • *

      => pointer(s) to...


  2. Keep doing this in a spiral/clockwise direction until all tokens have been covered.


  3. Always resolve anything in parenthesis first!

Example #1: Simple declaration

Question we ask ourselves: What is str?

``str is an...

Example #2: Pointer to Function declaration

Question we ask ourselves: What is fp?

``fp is a...

Example #3: The ``Ultimate''

Question we ask ourselves: What is `signal'?

Notice that signal is inside parenthesis, so we must resolve this first!

The same rule is applied for const and volatile. For Example:

How about this one:


Practice this rule with the examples found in K&R II on page 122.


Copyright © 1993,1994 David Anderson

This article may be freely distributed as long as the author's name and this notice are retained.