12.6 Приведение невыровненых типов

На верх  Назад  Вперёд

Приведение типов может быть Unaligned (невыровненым) в выражении или переменной. Это не реальное приведение, а скорее указание компилятору, что выражение может быть смещено (то есть не выровнено по адресам памяти). Некоторые процессоры не обеспечивают прямой доступ к невыровненым структурам данных, и поэтому должен иметь доступ к данным побайтно.

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

Обратите внимание, что компилятор предполагает, что все поля/элементы упакованных структур данных невыровненны.

Пример:

program me;

 

Var

A : packed Array[1..20] of Byte;

I : LongInt;

begin

For I:=1 to 20 do

  A[I]:=I;

I:=PInteger(Unaligned(@A[13]))^;

end.