Преобразование типов в Turbo Pascal 7
Опубликовано: 02.09.2018
В раде случаев требуется преобразовать переменную одного типа в переменную другого типа. В 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).
Основные типы переменных Pascal - 15
Курсы обмена валют ЦБ РФ
Сегодня | Завтра | ||
USD | 32.62 | 32.50 | |
EUR | 39.90 | 39.92 |
Новости
Виджет для Opera
ТОП-5 обменников
Обменник | Переходов |
Wmchanger | 6 |
E-Market | 5 |
WMtoCash.com | 4 |
Str-Money | 3 |
Hot-Change | 3 |
Наш бонус WebMoney
Получить бонус
Вы можете получить WMR-бонус в размере 0,01-0,10 WMR на свой кошелек 1 раз в сутки | |
Кошелек
|
|
Код
|
|
Обмен Webmoney |