Условная компиляция путем изменения значения макроса - PullRequest
0 голосов
/ 17 ноября 2018

я хочу скомпилировать программу с условной компиляцией без переопределения макроса, например:

#include <stdio.h>
#define X 1
int main ()
{
    #ifdef X
    printf("HI\n");
    #else
    printf("Hello\n");
    #endif // X
    return 0;
}

если я изменю значение макроса на 0, остальная часть не выполняется, скорее, есливыполняется только одна часть, если я изменяю макрос или если выполняется только одна инструкция, другая часть выполняется, мой вопрос: есть ли способ обусловить компиляцию чтением значения макроса?

1 Ответ

0 голосов
/ 17 ноября 2018

Вместо этого вы хотите #if.

#if X
printf("HI\n");     // will be compiled if X is anything but 0
#else
printf("Hello\n");  // will be compiled if X is 0
#endif // X
...