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

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Строка 8: Строка 8:
'''{$undef <идентификатор>}''' - Исключение имени, используется для отмены действия директивы $define.
'''{$undef <идентификатор>}''' - Исключение имени, используется для отмены действия директивы $define.


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


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


'''{$else}'''                  - Директива "иначе" в блоке условной компиляции.
'''{$else}'''                  - Директива "иначе" в блоке условной компиляции.
Строка 16: Строка 16:
'''{$endif}'''                  - Завершение блока условной компиляции.
'''{$endif}'''                  - Завершение блока условной компиляции.


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


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


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


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

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

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

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

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

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

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

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

{$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.