Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

No Format
 #define FOO(a, b, c) bar(a, b, c)
/* ... */ 
FOO(arg1, arg2, arg3); 

Risk Assessment

Failing to parenthesize around the parameter names within a macro can result in unintended program behavior.

...

Wiki Markup
\[[Plum 85|AA. C References#Plum 85]\]
\[[Summit 05|AA. C References#Summit 05]\] Question 10.1
\[[ISO/IEC 9899-1999|AA. C References#ISO/IEC 9899-1999]\] Section 6.10, "Preprocessing directives," and Section 5.1.1, "Translation environment"

...

PRE00-A. Prefer inline functions to Macros       01. Preprocessor (PRE)       PRE02-A. Macro replacement lists should be parenthesized