Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rule 5.4: Macro identifier
#1
I have a question regarding rule 5.4: Which of the following #defines is violating this rule?

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>


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)