Имя_типа ( Имя_переменной )

Имя_типа (Выражение).

Функции приведения типа определены как для стандартных, так и для пользовательских типов. Функции приведения типов могут использоваться как в левой, так и в правой части оператора присваивания, т.к. приведение типа не изменяет внутреннего представления объекта, а изменяет только его интерпретацию.

Type  
Rec = array [1…4] of byte;  
Var A: Rec; L: longint; b: byte; w: word;  
begin  
А [1]: = …; А [2]: =…; А [3]: =…; А[4]: =…; { инициализация массива }
L: = LongInt (А); { приведение типа Rec к типу LongInt в правой части оператора присваивания }
...  
L: = 123456; { инициализация переменной L }
b: = Rec (L) [3]; { приведение типа LongInt к типу Rec в правой части оператора присваивания }
Rec (L) [1]: = 10; { приведение типа LongInt к типу Rec в левой части оператора присваивания }
...  
w:=word(-6); { приведение типа Integer к типу Word: w = 65530 (см. 1.1.1) }
end.  
           

Преобразование типа изменяет внутреннее представление объектов, т.е. их элементы хранения. При выполнении преобразования к типу большей мощности, у которого размер элемента хранения больше, значения атрибутов объекта будут целиком записаны в младшие байты. Если выполняется преобразование к типу меньшей мощности, от элемента хранения объекта берутся только младшие байты. Таким образом, в результате преобразования типа длина внутреннего представления объекта может как увеличиться, так и уменьшиться.

Преобразование типа может быть явным, неявным и автоопределенным. Неявное преобразование возможно в выражениях, составленных из вещественных и целочисленных переменных, переменные типа INTEGER автоматически преобразуются к типу REAL, и все выражение в целом приобретает вещественный тип. Явные преобразования связаны с использованием специальных функций преобразования, определенных в языке, аргументы которых принадлежат одному типу, а значения - другому.

function Chr (X: byte): char; { возвращает символ с заданным порядковым номером X }
function Ord (X: любой порядковый тип): longint; { возвращает порядковый номер, соответ- ствующий значению X порядкового типа }
function Odd (X: любой порядковый тип): boolean; { проверяет, является ли аргумент нечетным числом }
function Round (R: real): longint; { округляет значение R вещественного типа до ближайшего целого }
function Trunc (R: real): longint; { усекает значение вещественного типа путем отбрасывания дробной части }
function Hi (X: word): byte; { возвращает старший байт аргумента X }
function Lo (X: word): byte; { возвращает младший байт аргумента X }

Автоопределенное преобразование связано с использованием только в правой части оператора присваивания функций преобразования вида:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: