Условная компиляция в C++ позволяет компилировать различные части программы в зависимости от условий, заданных на этапе препроцессинга. Это достигается с помощью директивы #ifdef
(если определён) или #ifndef
(если не определён).
Примеры условной компиляции:
-
Пример с
#ifdef
:#ifdef DEBUG // Этот код будет скомпилирован только если DEBUG определён std::cout << "Debug mode is enabled!" << std::endl; #endif
-
Пример с
#ifndef
:#ifndef NDEBUG // Этот код будет скомпилирован только если NDEBUG НЕ определён std::cout << "Debugging information is enabled!" << std::endl; #endif
-
Определение и использование своих макросов:
#define MY_FEATURE_ENABLED #ifdef MY_FEATURE_ENABLED // Включаем функциональность, если MY_FEATURE_ENABLED определён performCustomAction(); #else // Включаем другую функциональность, если MY_FEATURE_ENABLED НЕ определён performDefaultAction(); #endif
Условная компиляция позволяет легко настраивать и адаптировать код в зависимости от конфигурации проекта или условий окружающей среды.