Versions Compared

Key

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

...

Inline functions are, in general, more suitable for this task . (See see PRE00-C. Prefer inline or static functions to function-like macros). ) Occasionally, however, they are not feasible (when macros are expected to operate on variables of different types, for example).

When multiple statements are used in a macro, they should be bound together in a do-while loop syntactically, so the macro can appear safely inside if clauses or other places that expect a single statement or a statement block. (Alternatively, when an if, for, or while statement uses braces even for a single body statement, then multiple statements in a macro will expand correctly even without a do-while loop . See (see EXP19-C. Use braces for the body of an if, for, or while statement).)

Noncompliant Code Example

...

ToolVersionCheckerDescription
LDRA tool suite
Include Page
LDRA_V
LDRA_V
79 SEnhanced Enforcementenforcement
PRQA QA-C
Include Page
PRQA QA-C_v
PRQA QA-C_v

3412
3458

Fully implemented

...

Search for vulnerabilities resulting from the violation of this rule on the CERT website.

Related Guidelines

...

ISO/IEC TR 24772:2013Pre-processor Directives [NMP]

...