Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Абсолютные переменные

Переменные можно описать так, что они будут располагаться по

определенному адресу в памяти, и в этом случае они называются аб-

солютными переменными. Описание таких переменных должно содержать

после типа оператор absolute:

описание --------- ---------- ---- ----------

абсолютной --->¦absolute+-T->¦целое без+->¦ : +->¦целое без+-T->

переменной L--------- ¦ ¦ знака ¦ L---- ¦ знака ¦ ¦

¦ L---------- L---------- ¦

¦ -------------- ¦

L------>¦идентификатор+-------------

¦ переменной ¦

L--------------

Отметим, что список идентификаторов в описании переменной

при указании оператора absolute может содержать только один иден-

тификатор.

Первая часть оператора absolute содержит сегмент и смещение,

то есть адрес, по которому переменная должна быть размещена.

CrtMode : byte absolute $0040:$0049;

Первая константа обозначает базу сегмента, а вторая опреде-

ляет смещение внутри этого сегмента. Обе константы не должны вы-

ходить за пределы диапазона от $0000 до $FFFF (от 0 до 65535).

В программах защищенного режима DOS и в Windows первую форму

оператор absolute нужно использовать очень аккуратно, если вообще

стоит это делать. Во время выполнения прикладной программы

Windows или DOS защищенного режима она может не иметь полномочий

доступа к областям памяти вне вашей программы. Попытка доступа к

этим областям памяти может привести к сбою программы.

Вторая форма оператора absolute используется для описания

переменной, которая помещается "поверх" другой переменной, то

есть по тому же самому адресу, что и другая переменная.

var

Str: string[32];

StrLen: byte absolute Str;

Это описание указывает, что переменная StrLen должна разме-

щаться с того же адреса, что и переменная Str, а поскольку первый

байт строковой переменной содержит динамическую длину строки, то

StrLen будет содержать длину Str.

Эту вторую форму оператора absolute можно без опасения ис-

пользовать при программировании в Windows или в защищенном режиме

DOS. Память, к которой вы обращаетесь, находится в области прог-

раммы.

Ссылки на переменные

Ссылка на переменную может обозначать следующее:

- переменную;

- компонент в переменной структурного или строкового типа;

- динамическую переменную, на которую указывает переменная

типa указатель.

Синтаксис ссылки на переменную имеет вид:

--------------

ссылка на -T-->¦идентификатор+----------------------------T-->

переменную ¦ ¦ переменной ¦ ^^ ------------- ¦

¦ L-------------- ¦L--+квалификатор¦<--

¦ ---------------- ¦ L-------------

+-->¦приведение типа+------+

¦ ¦ переменной ¦ ¦

¦ L---------------- L-----

¦ ---------- ------------- ¦

L-->¦выражение+->¦квалификатор+---

L---------- L-------------

Отметим, что синтаксис ссылки на переменную допускает ис-

пользование выражения, вычисляющего значение ссылочного типа. Вы-

ражение должно следовать за квалификатором, разыменовывающим ссы-

лочное значение (или индексирующим значением указателя, если с

помощью директивы {$X+} разрешен расширенный синтаксис), что дает

фактическую ссылку на переменную.

Соседние файлы в предмете Программирование на Pascal