次のコードがあります。control_word を 6 にすると、if 条件が true と評価されて if ブロックの中に入るのはなぜですか?ここで正確に何が起こっているのでしょうか?
#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 */
}
}