Тип выражения и тип, к которому приводится выражение, должны быть скалярными упорядоченными типами или указателями.
При приведении типов выражений значение может быть расширено или усечено, если размер типа выражения не равен размеру типа, к которому оно приводится. При приведении к типу большего размера значение не искажается, числовые значения сохраняют знак. При приведении к типу меньшего размера отбрасываются старшие байты. Например, оператор write(byte(2>3)) выведет 0. Значение выражения byte($7A1F) равно $1F.
Приведение типов переменных
При приведении типа переменной размер переменной должен быть равен размеру типа, к которому она приводится.
Например, переменная типа LongInt может быть приведена к типу массив из четырех символов. В этом случае после приведения типа переменной можно указать индекс.
Операцию приведения типа переменной можно использовать как в правой, так и в левой части оператора присваивания в качестве фактического параметра подпрограммы.
Пример 1.
type t_season=(Winter, Spring, Summer, Autumn);
t_vect=array[1..2] of word;
var p:pointer; s:t_season;
begin write(‘Введите сезон: 0 - зима, 1 - весна, 2 - лето, 3 - осень’);
read(byte(s));
…
getmem(p,1);
write(‘Сегмент: ’, t_vect(p)[2], ’; смещение:’, t_vect(p)[1]);
…
end.