2.13.3. Условная компиляция
Условная компиляция предназначена для
генерации конкретного варианта текста программы и создается с помощью
специальных директив: #if, #ifdef, ifndef,#else,#endif.
Рассмотрим некоторые типичные
примеры:
-
#ifndef MyHeaderH
#define MyHeaderH
...
...
#endif
Это типичный пример создания
заголовочного файла пользователя. Здесь условная компиляция позволяет не
вставлять несколько раз один и тот же заголовочный файл. Первая строка
(#ifndef) проверяет, не определен ли макрос MyHeaderH, если нет, то определяет
его и вставляет текст файла. Если макрос MyHeaderH определен, то весь текст
пропускается до #endif, тем самым он не вставляется. Другой пример:
-
#ifdef DOS
... //программный код для OS DOS
...
#elif define(WINDOWS)
... //программный код для OS WINDOWS
...
#elif define(UNIX)
... //программный код для OS UNIX
...
#else
... //программный код для других OS
...
#endif
В этом примере показано, как
создавать программный код для разного класса операционных систем. Если при
трансляции установлен макрос DOS, то будет вставлен программный код, следующий
за #ifdef. Если установлен макрос WINDOWS, то будет вставлен код только для
WINDOWS и т.д.