Директивы компилятора: различия между версиями

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Строка 25: Строка 25:
== Пример программы с использованием директив компилятора ==
== Пример программы с использованием директив компилятора ==


{$apptype console}
<nowiki>{$apptype console}
{$reference library.dll}
{$reference library.dll}
{$define DEBUG}
{$define DEBUG}
'''begin'''
begin
   {$ifdef DEBUG}  
   {$ifdef DEBUG}  
     {$ifndef DEBUG}
     {$ifndef DEBUG}
Строка 38: Строка 38:
    
    
   {$include test.pas}
   {$include test.pas}
'''end'''.
end.</nowiki>

Версия от 21:19, 20 мая 2009

Основные директивы, обрабатываемые препроцессором

{$include <имя файла>} - Включение в текст программы содержимого указанного файла.

{$define <идентификатор>} - Определение имени, используемого в директивах $ifdef, $ifndef.

{$undef <идентификатор>} - Исключение имени, используется для отмены действия директивы $define.

{$ifdef <name>} - Начало блока условной компиляции (проверяется условие: "идентификатор определен").

{$ifndef <name>} - Начало блока условной компиляции (проверяется условие: "идентификатор не определен").

{$else} - Директива "иначе" в блоке условной компиляции.

{$endif} - Завершение блока условной компиляции.

Директивы $ifdef, $ifndef совместно с директивами $else и $endif управлют условной компиляцией частей исходного файла. Каждой директиве $ifdef, $ifndef должна соответствовать завершающая ее директива $endif. Между директивами $ifdef, $ifndef и $endif допускается произвольное количество блоков условной компиляции (в том числе вложенных) и не более одной директивы $else.

{$apptype <тип приложения>} - Задание типа приложения.

{$reference <имя библиотеки>} - Подключение библиотеки.


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

{$apptype console} {$reference library.dll} {$define DEBUG} begin {$ifdef DEBUG} {$ifndef DEBUG} write('Имя DEBUG не определено'); {$else} writeln('Имя DEBUG определено'); {$endif} {$endif} {$include test.pas} end.