Условная компиляция в C++ позволяет компилировать различные части программы в зависимости от условий, заданных на этапе препроцессинга. Это достигается с помощью директивы #ifdef (если определён) или #ifndef (если не определён).

Примеры условной компиляции:

  1. Пример с #ifdef:

    #ifdef DEBUG
        // Этот код будет скомпилирован только если DEBUG определён
        std::cout << "Debug mode is enabled!" << std::endl;
    #endif
  2. Пример с #ifndef:

    #ifndef NDEBUG
        // Этот код будет скомпилирован только если NDEBUG НЕ определён
        std::cout << "Debugging information is enabled!" << std::endl;
    #endif
  3. Определение и использование своих макросов:

    #define MY_FEATURE_ENABLED
     
    #ifdef MY_FEATURE_ENABLED
        // Включаем функциональность, если MY_FEATURE_ENABLED определён
        performCustomAction();
    #else
        // Включаем другую функциональность, если MY_FEATURE_ENABLED НЕ определён
        performDefaultAction();
    #endif

Условная компиляция позволяет легко настраивать и адаптировать код в зависимости от конфигурации проекта или условий окружающей среды.