Examples

6.19 Preprocessing Directives

Moderators: misra-c, david ward

Locked
MISRA Reply
Posts: 53
Joined: Mon Dec 06, 2004 12:24 pm

Examples

Post by MISRA Reply » Fri Sep 09, 2005 3:21 pm

Code: Select all

#define M1 ;
This macro breaks rule 19.4. Macro expanding to Null statement is not allowed/

Code: Select all

#define M2
#define M3 /* comment */
This macro expands to no body, and is therefore not prohibited by 19.4.

A comment in a macro definition is removed by the pre-processor. Rule 14.3 applied before
Pre-processing. Treatment of M2 and M3 is identical.

Code: Select all

M1
Since definition of M1 macro was invalid, its use is already a violation.

Code: Select all

M2;
M3;
After pre-processing, these are both Null statements. Before pre-processing, there are characters before the Null statement. This is not allowed by 14.3.

Locked

Return to “6.19 Preprocessing Directives”