Actions

EmSys

CCoding Style - Parenthesize the macro body and arguments2

From EdWiki

Parenthesize the macro body and arguments ...

Even Parenthesizing the macro properly doesn’t address the multiple evaluation problem.

#define    max( x, y)    ( (x) > (y) ? (x) : (y) )

And it is invoked as

max( i++, j++ )

Will increment the larger value twice.