[previous] 1028 [next] [E] Use of the sizeof operator in a preprocessing directive is a language extension.
Language extensions REFERENCE - ISO:C90-6.8.1 Conditional Inclusion - Semantics, ISO:C90-6.1.1 Keywords

Keywords (such as sizeof) are not recognised in preprocessing directives such as #if and #elif. However some compilers do permit this form as a language extension. QAC allows it but will issue message 1028.

For example:


/*PRQA S 553,2017,3205 ++*/

#if (sizeof(int) < 4)        /* Message 1028 */

typedef long XTYPE;

#else

typedef int XTYPE;

#endif


MISRA-C:2004 Rules applicable to message 1028:

Rule  1.1  (Required) All code shall conform to ISO/IEC 9899:1990 C programming language, ISO 9899, amended and corrected by ISO/IEC 9899/COR1:1995, ISO/IEC 9899/AMD1:1995, and ISO/IEC 9899/COR2: 1996192


QA·C Source Code Analyser 8.1
MISRA-C:2004 Compliance Module 3.2
© 2012 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index | MISRA-C:2004 Rule Index Contents