Компиляция только одной части if-else

Пожалуйста, посмотрите на следующий код

#include <iostream>
using namespace std;

int main (){
#if true
int fd = 0;

#else
int dd =0;
#endif
cout<<fd;
//cout<<dd;

system("pause");
return 0;
}

Здесь я пытаюсь скомпилировать только один блок. Если ‘if’ скомпилировано, то ‘else’ не должно, как мудрый. Но это не работает. Пожалуйста помоги.

0

Решение

Для условной компиляции код должен выглядеть примерно так:

#include <iostream>
using namespace std;

int main (){
#ifdef Somedef
int fd = 0;
cout<<fd;
#else
int dd =0;
cout<<dd;
#endif
system("pause");
return 0;
}

А затем при компиляции кода укажите аргумент командной строки для определения, например, для: gcc -DSomedef test.c -o test, чтобы включить код и удалить определение командной строки для удаления кода

Примечание. Вы проверили «#if true» для условной компиляции, этот оператор всегда будет истинным и, следовательно, будет включать эту часть кода при компиляции.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]