16-06-2015, 12:01 PM
I have a question regarding rule 5.4: Which of the following #defines is violating this rule?
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...
Code:
#define engine_exhaust_gas_temperature_high_raw egt_r
#define engine_exhaust_gas_temperature_high_scaled egt_s
#define x 0
#define x 0
#ifndef ABCDE
#define DAI_AGK_SEC_1BIT_RAM_START
#endif
#ifndef FGHIJ
#define DAI_AGK_SEC_1BIT_RAM_START
#endif
unsigned long int A;
unsigned short int Con = 0;
void main(void)
{
/*5.4*/
#ifdef DAI_AGK_SEC_1BIT_RAM_START
A = Con;
#endif
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...
<t></t>