Условная компиляция #ifdef #endif #else #ifndef #if

#ifdef - помогает нам не компилировать некоторые блоки кода.

пример
#define DEBUG


int main()
{

#ifdef DEBUG  // если DEBUG объявлен, то выведится текст "debug"

    cout << "debug" << endl;
    
#else     // иначе

    cout << "release" << endl; 
    
#endif 

}
условия выполнены
закомментировали #define DEBUG и код пошел по ветке else


#ifndef - это инвертированная версия #ifdef

хоть DEBUG существует и не закомментирован код идет по ветке else


#if - проверяет условие

#elif - дополнительное условие

#define DEBUG -1

#if DEBUG > 0
    cout << "debug" << endl;
#elif DEBUG <= -1
    cout << "error" << endl;
#else 
    cout << "release" << endl;
#endif 

Last updated