РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
38 of 815 menu

Директива #endif

Директива #endif закрывает блок условной компиляции, который был открыт одной из директив: #if, #ifdef или #ifndef. Она не принимает никаких параметров и просто обозначает конец условного фрагмента. Препроцессор использует эту директиву, чтобы понять, где заканчивается код, который нужно включать в компиляцию только при выполнении заданного условия. Каждой открывающей директиве условной компиляции должна соответствовать ровно одна закрывающая директива #endif.

Синтаксис

#endif

Пример

Давайте проверим, определён ли макрос DEBUG, и выведем отладочное сообщение только в этом случае:

#include <iostream> using namespace std; #define DEBUG int main() { #ifdef DEBUG cout << "Debug mode" << endl; #endif cout << "Program finished" << endl; return 0; }

Результат выполнения кода:

"Debug mode" "Program finished"

Пример

Давайте закомментируем определение макроса DEBUG и посмотрим, как изменится поведение программы:

#include <iostream> using namespace std; // #define DEBUG int main() { #ifdef DEBUG cout << "Debug mode" << endl; #endif cout << "Program finished" << endl; return 0; }

Результат выполнения кода:

"Program finished"

Пример

Давайте используем директиву #ifndef вместе с #endif для защиты заголовочного файла от повторного включения:

#include <iostream> using namespace std; #ifndef MY_HEADER #define MY_HEADER void hello() { cout << "Hello" << endl; } #endif int main() { hello(); return 0; }

Результат выполнения кода:

"Hello"

Смотрите также

  • директива ifdef,
    которая проверяет, определён ли макрос
  • директива ifndef,
    которая проверяет, не определён ли макрос
  • директива if,
    которая выполняет условную компиляцию по выражению
  • директива define,
    которая определяет макрос
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить