MISRA C:2023 Rule 20.11
A macro parameter immediately following a # operator shall not immediately be followed by a ## operator
Since R2024a
Description
Rule Definition
A macro parameter immediately following a # operator shall not immediately be followed by a ## operator1 .
Rationale
The order of evaluation associated with multiple #,
multiple ##, or a mix of # and ## preprocessor
operators, is unspecified. Rule 20.10 discourages the use of # and ##.
The result of a # operator is a string literal.
It is extremely unlikely that pasting this result to any other preprocessing
token results in a valid token.
Troubleshooting
If you expect a rule violation but do not see it, refer to Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Examples
Check Information
| Group: Preprocessing Directives | 
| Category: Required | 
| AGC Category: Required | 
Version History
Introduced in R2024a
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace® Bug Finder™ documentation are from the following MISRA standards:
- MISRA C:2004 
- MISRA C:2012 
- MISRA C:2023 
- MISRA C++:2008 
- MISRA C++:2023 
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.