Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Директивы компилятора. Условная компиляция.

Поиск:
Директивы и символы условной компиляции
----------------------------------------
Условная компиляция основана на оценке условных символов.

Директива условного символа 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.
Автор: Справка Borland Pascal 7.0
Сайт: http://






Просмотров: 4186

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную