Директива #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"