9.261 TRANSFER — Битовые шаблоны передачи
- Описание:
- Интерпретирует битовое представление SOURCE в памяти как представление переменной или массива того же типа и параметров типа, что и MOLD.
Это примерно эквивалентно понятию приведения типов в C.
- Стандарт:
- Fortran 95 и более поздние версии
- Класс:
- Функция преобразования
- Синтаксис:
-
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-5.4.0/gfortran/TRANSFER.html