Macro Problems

Function-like macros—macro definitions that take arguments—share many of the advantages of functions. They can cause unwanted side effects, however, if you fail to put parentheses around their arguments or carelessly supply an argument that uses an increment or decrement operator.