| 9.4.     Преобразование типовВ раде случаев требуется преобразовать переменную одного типа в  переменную другого типа. В Turbo Pascal такое преобразование осуществляется  сравнительно просто, если переменные обоих типов имеют один и тот же размер.  Для этого следует указать идентификатор типа, а за ним в круглых скобках  переменную исходного типа. Если новый тип - структурированный, можно в  случае необходимости выбрать компоненту в соответствии с общими правилами. Пример. 
   | type |  |  
   | ByteRec = record |  |  
   | Lo, Hi: Byte |  |  
   | end; |  |  
   | WordRec = record |  |  
   | Low, High: Word |  |  
   | end; |  |  
   | PtrRec = record |  |  
   | Ofs, Seg:   Word |  |  
   | end; |  |  
   | BytePtr = ^Byte; |  |  
   | var |  |  
   | В: Byte; |  |  
   | W: Word; |  |  
   | L: Longint; |  |  
   | P: Pointer; |  |  
   | begin |  |  
   | W := $1234; | {присвоение переменной W значения} |  
   | В := ByteRec(W).Lo; | {преобразование переменной типа Word в запись из двух байтов и выделение младшего байта} |  
   | ByteRec(W).Hi := 0; | {преобразование переменной типа Word в запись из двух байтов и запись в старший байт значения 0} |  
   | L := $01234567; | {присвоение переменной L значения} |  
   | W := WordRec(L).Low; | {преобразование переменной типа Longint в запись из двух слов и выделение младшего слова} |  
   | В := ByteRec(WordRec(L).Low).Hi; | {преобразование переменной типа Longint в запись из двух слов, выделение младшего слова, преобразование его в запись из двух байтов и выделение старшего байта} |  
   | В := BytePtr(L)^; | {преобразование переменной типа Longint в указатель и получение значения параметра, на который он указывает} |  
   | Р :=Ptr ($40,$49); | {Присвоение указателю Р значения с помощью стандартной функции Ptr} |  
   | W := PtrRec(P).Seg; | {преобразование указателя в запись из двух слов и выделение второго слова (фактически адреса сегмента)} |  
   | Inc(PtrRec(P).Ofs, 4); | {преобразование указателя в запись из двух слов, выделение первого  слова  (фактически смещения адреса) и увеличение его величины на 4 с помощью стандартной процедуры Inc} |  
   | end; |  |  Такое преобразование возможно не только, когда исходный и окончательный типы имеют одинаковый размер. Оно возможно также в случае преобразования друг в друга двух порядковых типов (см. п. 3.2), независимо от их размера, а также преобразования параметра без типа (см. п. 10.3.4). 
 
 |