Spec-Zone.ru › GNU Fortran 4

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API