Я думаю, что OP может спросить об утверждении "#if COND_A && COND_B", а не "#ifdef COND_A && COND_B" ...
Они тоже разные. "#if COND_A && COND_B" может судить о логическом выражении так:
#if 5+1==6 && 1+1==2
....
#endif
даже, переменная в вашем коде также может использоваться в этом макросе:
int a = 1;
#if a==1
...
#endif