MISRA.UNDEFUndef usage. MISRA C 2012 Rule 20.5: #undef should not be useCategory: Advisory Analysis: Decidable, Single Translation Unit Applies to: C90, C99 RationaleThe use of #undef can make it unclear which macros exist at a particular point within a translation unit. Example#define QUALIFIER volatile #undef QUALIFIER /* Non-compliant */ void f ( QUALIFIER int32_t p ) { while ( p != 0 ) { ; /* Wait... */ } } MISRA-C 2004 Rule 19.6 (required): #undef shall not be used.Undef usage. #undef should not normally be needed. Its use can lead to confusion with respect to the existence or meaning of a macro when it is used in the code. MISRA-C++ 2008 Rule 16-0-3 (required): #undef shall not be used.Rationale#undef should not normally be needed. Its use can lead to confusion with respect to the existence or meaning of a macro when it is used in the code. Example#ifndef MY_HDR #define MY_HDR #undef MY_HDR // Non-compliant #endif |