why is this behaviour with MACRO?
I've the following code.if i give control_word as 6 why if condition evaluates to true and enters inside if block?what exactly is happening here?

    #define MACRO1 0x01
    #define MACRO2 0x02
    #define MACRO4 0x04
    #define MACRO3 MACRO1 | MACRO2
    #define MACRO7 MACRO4 | MACRO3
    
    int main()
    {
        if(control_word == MACRO3 || control_word == MACRO7)
        {
            /*DO SOME OPERATION*/
        }
        else
        {
            /*DO SOMETHING ELSE */
        }
    
    }


why is this behaviour with MACRO?
===

I've the following code.if i give control_word as 6 why if condition evaluates to true and enters inside if block?what exactly is happening here?

    #define MACRO1 0x01
    #define MACRO2 0x02
    #define MACRO4 0x04
    #define MACRO3 MACRO1 | MACRO2
    #define MACRO7 MACRO4 | MACRO3
    
    int main()
    {
        if(control_word == MACRO3 || control_word == MACRO7)
        {
            /*DO SOME OPERATION*/
        }
        else
        {
            /*DO SOMETHING ELSE */
        }
    
    }

