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