8.273 TRANSFER — Передача битовых шаблонов
- Описание:
-
Интерпретирует битовое представление SOURCE в памяти так, как если бы оно представляло переменную или массив того же типа и параметров типа, что и MOLD.
Это примерно эквивалентно понятию приведения типов в C.
- Стандарт:
-
Fortran 90 и более поздние версии
- Класс:
-
Функция преобразования
- Синтаксис:
-
RESULT = TRANSFER(SOURCE, MOLD[, SIZE]) - Аргументы:
-
SOURCE Должен быть скаляром или массивом любого типа. MOLD Должен быть скаляром или массивом любого типа. SIZE (Необязательно) должен быть скаляром типа INTEGER. - Возвращаемое значение:
-
Результат имеет тот же тип, что и MOLD, с битовым представлением SOURCE. Если SIZE присутствует, результат является одномерным массивом длины SIZE. Если SIZE отсутствует, а MOLD — массив (любого размера или формы), результат — одномерный массив минимальной длины, необходимой для хранения всего битового представления SOURCE. Если SIZE отсутствует, а MOLD — скаляр, результат — скаляр.
Если битовое представление результата длиннее, чем у SOURCE, то старшие биты результата соответствуют старшим битам SOURCE, а любые последующие биты заполняются произвольным образом.
Когда результирующее битовое представление не соответствует допустимому представлению переменной того же типа, что и MOLD, результаты неопределённы, и последующие операции над результатом не гарантируют получения осмысленного поведения. Например, возможно создать
LOGICALпеременные, для которыхVARи.NOT.VARоба кажутся истинными. - Пример:
-
PROGRAM test_transfer integer :: x = 2143289344 print *, transfer(x, 1.0) ! prints "NaN" on i686 END PROGRAM
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gfortran/TRANSFER.html