Вы можете использовать определенный оператор в директива #if использовать выражения которые оценивают до 0 или 1 в пределах препроцессорная линия. Это избавит вас от используя вложенные предпроцессорные директивы. Скобки вокруг идентификатора являются необязательными. Например:
#if defined (MAX) && ! defined (MIN)
Без использования определенного оператора, вы должны были бы включить следуя двум директивам для выполнения в приведенном выше примере:
#ifdef max
#ifndef min
Ответ 3
Следующие результаты одинаковы:
1.
#define A
#define B
#if(defined A && defined B)
printf("define test");
#endif
2.
#ifdef A
#ifdef B
printf("define test");
#endif
#endif
Ответ 4
По состоянию на VS2015 ни одно из вышеперечисленных работ не работает. Правильная директива: