Spec-Zone.ru › GNU Fortran 10

9.274 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

Далее: TRANSPOSE, Предыдущее: TRAILZ, Вверх: Встроенные процедуры [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gfortran/TRANSFER.html

Spec-Zone.ru

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