![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
Директивы и символы условной компиляции
---------------------------------------- Условная компиляция основана на оценке условных символов. Директива условного символа DEFINE ----------------------------------- Определяет условный символ с заданным именем Синтаксис: {$DEFINE Имя} Определенный символ существует до конца компиляции, или пока он не будет убран директивой $UNDEF Имя. Директива {$DEFINE Имя} не даст эффекта, если символ с именем "Имя" уже был определен. Условная директива компиляции ELSE ----------------------------------- Компилирует или пропускает исходный текст, следующий за директивой $ELSE. Синтаксис: {$ELSE} Внутри исходного текста, разделенного директивами $IFDEF (или $IFNDEF) и $ENDIF, $ELSE компилирует текст, следующий за $ELSE, если условие $IFDEF (или $IFNDEF) не выполняется. Если условие $IFDEF (или $IFNDEF) выполнено, то $ELSE игнорирует исходный текст, следующий за словом $ELSE. Условная директива компиляции ENDIF ------------------------------------ Завершает блок условной компиляции, начинающийся с последней условной директивы $IFxxx. Синтаксис: {$ENDIF} Условная директива компиляции IFDEF ------------------------------------ Компилирует текст, следующий за директивой IFDEF, если символ с именем "Имя" определен. Синтаксис: {$IFDEF Имя} Условная директива компиляции IFNDEF ------------------------------------- Компилирует текст, следующий за директивой IFNDEF, если символ с именем "Имя" НЕ определен. Синтаксис: {$IFNDEF Имя} Условная директива компиляции IFOPT ------------------------------------ Компилирует текст, следующий за директивой IFOPT, если заданный переключатель находится в определенном состоянии. Синтаксис: {$IFOPT Переключатель} Параметр "Переключатель" включает имя переключателя, сопровождаемое знаком "+" или "-": "Переключатель+" означает, что переключатель включен "Переключатель-" означает, что переключатель выключен Директива условного символа UNDEF ---------------------------------- Убирает предварительно определенный условный символ с именем "Имя" Синтаксис: {$UNDEF Имя} Символ забывается до конца компиляции или пока он вновь не будет объявлен с помощью директивы $DEFINE. Директива {$UNDEF Имя} не даст эффекта, если символ с именем "Имя" уже убран. Символы условной компиляции Символ Значение CPU86 Процессор принадлежит семье 80x86 CPU87 Присутствует ли сопроцессор 80x87 во время компиляции DPMI Указывает, что компиляция идет в защищенном режиме DOS MSDOS Указывает, что компиляция идет в реальном режиме DOS VER70 Номер версии Turbo Pascal WINDOWS Указывает, что компиляция идет в среде Windows Конструкции условной компиляции -------------------------------- Вы можете использовать директивы условной компиляции, чтобы генерировать различный код из одного и того же исходного текста, в зависимости от состояния условных символов. Вы можете использовать две конструкции: - {$IFxxx} ... {$ENDIF} - {$IFxxx} ... {$ELSE} ... {$ENDIF} IF ... ENDIF: Конструкция $IFxxx ... $ENDIF заставляет компилироваться исходный текст между $IFxxx и $ENDIF только в том случае, если условие, определенное в директиве $IFxxx истинно. Если условие ложно, то исходный текст между двумя директивами игнорируется. IF ... ELSE ... ENDIF: Конструкция $IFxxx ... $ELSE ... $ENDIF заставляет компилироваться - Исходный текст между $IFxxx и $ELSE, если условие $IFxxx истинно, - Исходный текст между $ELSE и $ENDIF, если условие $IFxxx ложно. Условные конструкции могут иметь 16 уровней вложений. В каждом исходном файле должно быть равное количество директив $IFxxx и $ENDIF. -------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |