C Idioms and little known facts
Okay, I've seen many posts here about odd idioms and common practices in C that might not be initially intuitive. Perhaps a few examples are in order

Elements in an array:

    #define ELEMENTS(x) (sizeof (x) / sizeof (*(x)))

[Odd array indexing:][1]

    a[5] = 5[a]

[Single line if/else/while/for safe #defines][2]

    #define FOO(X) do { f(X); g(X); } while (0)
    #define FOO(X) if (1) { f(X); g(X); } else

My question to the expert C programmers out there is: What **idioms**, **practices**, **code snippits**, or **little known facts** show up a lot in C code but might not be very intuitive but offer a good insight into C programming?

  [1]: http://stackoverflow.com/questions/381542/in-c-arrays-why-is-this-true-a5-5a
  [2]: http://stackoverflow.com/questions/154136/why-are-there-sometimes-meaningless-do-while-and-if-else-statements-in-c-c-macr
C Idioms and little known facts
===

Okay, I've seen many posts here about odd idioms and common practices in C that might not be initially intuitive. Perhaps a few examples are in order

Elements in an array:

    #define ELEMENTS(x) (sizeof (x) / sizeof (*(x)))

[Odd array indexing:][1]

    a[5] = 5[a]

[Single line if/else/while/for safe #defines][2]

    #define FOO(X) do { f(X); g(X); } while (0)
    #define FOO(X) if (1) { f(X); g(X); } else

My question to the expert C programmers out there is: What **idioms**, **practices**, **code snippits**, or **little known facts** show up a lot in C code but might not be very intuitive but offer a good insight into C programming?

  [1]: http://stackoverflow.com/questions/381542/in-c-arrays-why-is-this-true-a5-5a
  [2]: http://stackoverflow.com/questions/154136/why-are-there-sometimes-meaningless-do-while-and-if-else-statements-in-c-c-macr