Preprocessor (PRE)
- PRE00-C. Prefer inline or static functions to function-like macros
- PRE01-C. Use parentheses within macros around parameter names
- PRE02-C. Macro replacement lists should be parenthesized
- PRE04-C. Do not reuse a standard header file name
- PRE05-C. Understand macro replacement when concatenating tokens or performing stringification
- PRE06-C. Enclose header files in an include guard
- PRE07-C. Avoid using repeated question marks
- PRE08-C. Guarantee that header file names are unique
- PRE09-C. Do not replace secure functions with deprecated or obsolescent functions
- PRE10-C. Wrap multistatement macros in a do-while loop
- PRE11-C. Do not conclude macro definitions with a semicolon
- PRE12-C. Do not define unsafe macros
- PRE13-C. Use the Standard predefined macros to test for versions and features.
Information for Editors
To have a new guideline automatically listed above be sure to label it pre and recommendation .
Risk Assessment Summary
| Rule | Severity | Likelihood | Detectable | Repairable | Priority | Level |
|---|---|---|---|---|---|---|
| PRE00-C | Medium | Unlikely | No | No | P2 | L3 |
| PRE01-C | Medium | Probable | Yes | Yes | P12 | L1 |
| PRE02-C | Medium | Probable | Yes | Yes | P12 | L1 |
| PRE04-C | Low | Unlikely | Yes | No | P2 | L3 |
| PRE05-C | Low | Unlikely | No | Yes | P2 | L3 |
| PRE06-C | Low | Unlikely | Yes | Yes | P3 | L3 |
| PRE07-C | Low | Unlikely | Yes | No | P2 | L3 |
| PRE08-C | Low | Unlikely | Yes | No | P2 | L3 |
| PRE09-C | High | Likely | Yes | No | P18 | L1 |
| PRE10-C | Medium | Probable | Yes | Yes | P12 | L1 |
| PRE11-C | Medium | Probable | Yes | No | P8 | L2 |
| PRE12-C | Low | Probable | Yes | No | P4 | L3 |
| PRE13-C | Low | Probable | No | No | P2 | L3 |
Related Rules and Recommendations
| DCL00-C. Const-qualify immutable objects |


