Spec-Zone.ru › GNU Fortran 9

9.274 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

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

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

Spec-Zone.ru

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