Versions Compared

Key

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

Macro replacement lists should be parenthesized to protect any lower-precedence operators from the surrounding expression. See also PRE00-C. Prefer inline or static functions to function-like macros - CERT Secure Coding Standards and PRE01-AC. Use parentheses within macros around parameter names - CERT Secure Coding Standards.

Non-Compliant Code Example

...

Wiki Markup
\[[ISO/IEC 9899:1999|AA. C References#ISO/IEC 9899-1999]\] Section 6.10, "Preprocessing directives," and Section 5.1.1, "Translation environment"
\[[ISO/IEC PDTR 24772|AA. C References#ISO/IEC PDTR 24772]\] "JCW Operator precedence/Order of Evaluation", "NMP Pre-processor Directions"
\[[Plum 85|AA. C References#Plum 85]\] Rule 1-1
\[[Summit 05|AA. C References#Summit 05]\] Question 10.1

...

PRE01-AC. Use parentheses within macros around parameter names - CERT Secure Coding Standards      01. Preprocessor (PRE)       PRE03-C. Prefer typedefs to defines for encoding types