Moderators: misra-c, david ward
- Posts: 2
- Joined: Thu Aug 21, 2014 6:27 am
- Company: Daimler AG
I have a question regarding rule 5.4: Which of the following #defines is violating this rule?
Code: Select all
#define engine_exhaust_gas_temperature_high_raw egt_r
#define engine_exhaust_gas_temperature_high_scaled egt_s
#define x 0
#define x 0
unsigned long int A;
unsigned short int Con = 0;
A = Con;
A = x;
The 1st and 2nd #define are similar to the example given in the MISRA-C guideline. Hence, the 2nd #define violates the rule.
The 3rd and 4th #define are identical. Therefore, the 4th #define violates the rule.
The 5th and 6th #define are identical as well. Does the 6th #define violate the rule? According to the glossary, the macro name is a macro identifier...
- Posts: 560
- Joined: Thu Jan 05, 2006 1:11 pm
The amplification states
This rule requires that, when a macro is being defined, its name be distinct from:
- the names of the other macros that are currently defined;
Therefore there will only be a violation of Rule 5.4 on DAI_AGK_SEC_1BIT_RAM_START if both ABCDE and FGHIJ are not defined.
Posted by and on behalf of
the MISRA C Working Group