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-14.2.0/gfortran/TRANSFER.html