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)))
a[5] = 5[a]
Single line if/else/while/for safe #defines
#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?