АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Ключи компиляции (директивы компилятора)

Читайте также:
  1. Включите в каждую колонку таблицы по 2-3 собственных примера. Ответ аргументируйте.
  2. Глава 4. Заключительные положения
  3. Глава 4. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ
  4. Глава VII. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ
  5. Действие пятое. Заключительное.
  6. Заключительное творческое занятие
  7. ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
  8. Заключительные положения
  9. Заключительные положения
  10. Заключительные положения
  11. ЗАКЛЮЧИТЕЛЬНЫЙ ТЕСТ
  12. Исключите из своей жизни алкоголь и табак.

 

Ключ компиляции задает режим компиляции программы. Этот режим управляет синтаксическими требованиями к исходному тексту программы, а также поведением откомпилированного кода программы.

 

Ключ является глобальным, если в модуле он может присутствовать только в одном месте – в начале модуля. Режим, задаваемый глобальным ключом, действует на весь модуль.

Ключ является локальным, если в модуле он может присутствовать во многих местах. Режим, задаваемый локальным ключом, действует на тот участок кода, который предшествует прямо противоположному ключу.

 

 


Выравнивание полей записей и классов

{$A + }, {$A-}, {$A1}, {$A2}, {$A4}, or {$A8}

или

{$ALIGN ON}, {$ALIGN OFF}, {$ALIGN 1}, {$ALIGN 2}, {$ALIGN 4},

or {$ALIGN 8}

По умолчанию:

{$A8}

или

{$ALIGN 8}

Зона действия: Локальный

 


Полное вычисление логических выражений

{$B + } or {$B-}

или

{$BOOLEVAL ON} or {$BOOLEVAL OFF}

По умолчанию:

{$B-}

или

{$BOOLEVAL OFF}

Зона действия: Локальный

 


Пример

 

x:= 3;

{$B-}

if

(x > 4) // Вычисляется

And

(x < 5) // НЕ вычисляется

then...;

 

 


Использование длинных строк (AnsiString)

{$H + } or {$H-}

или

{$LONGSTRINGS ON} or {$LONGSTRINGS OFF}

По умолчанию:

{$H + }

или

{$LONGSTRINGS ON}

Зона действия: Локальный

 


Проверка результата ввода-вывода

{$I + } or {$I-}

или

{$IOCHECKS ON} or {$IOCHECKS OFF}

По умолчанию:

{$I + }

или {$IOCHECKS ON}

Зона действия: Локальный

 


Разрешение использовать типизированные константы как переменные

{$J + } or {$J-}

или

{$WRITEABLECONST ON} or {$WRITEABLECONST OFF}

По умолчанию:

{$J-}

или

{$WRITEABLECONST OFF}

Зона действия: Локальный

 

 


Генерация информации о текущих типах полей, методов, свойств, объявленных в секции Published (RTTI, RunTime Type Information )

{$M+} or {$M-}

или

{$TYPEINFO ON} or {$TYPEINFO OFF}

По умолчанию:

{$M-}

или

{$TYPEINFO OFF}

Зона действия: Локальный

 

 

Если класс объявлен в режиме {$M-}, или не является потомком класса, объявленного в режиме {$M+}, секция Published запрещена.

Задание размера стека

{$M <Число: Мин. размер стека>, < Число: Макс. размер стека>}

или

{$MINSTACKSIZE <Число>}

{$MAXSTACKSIZE <Число>}

По умолчанию:

{$M 16384, 1048576}

Зона действия: Глобальный

 

1024 <Число: Мин. размер стека> 2147483647

<Число: Мин. размер стека> <Число: Макс. размер стека> 2147483647

 


Проверка выхода за пределы диапазона

{$R + } or {$R-}

или

{$RANGECHECKS ON} or {$RANGECHECKS OFF}

По умолчанию:

{$R-}

или

{$RANGECHECKS OFF}

Зона действия: Локальный

 


Пример. TP7

 

uses crt;

Var

i: integer; mA: array [1..10] of longint; mB: array [1..10] of longint;

Begin

clrscr;

for i:= 1 to 10 do begin mA[i]:= 0; mB[i]:= 0; end;

{$R-}

i:= 12;

mA[i]:= -7;

writeln(mA[i]); // -7

writeln(mB[2]); // -7

{$R + }

mA[i]:= -7; // RunTime Error

writeln(mA[12]); // Constant Out Of Range

end.


1 | 2 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)