Spec-Zone.ru › GNU Fortran 12

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

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

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

Spec-Zone.ru

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