Spec-Zone.ru › GNU Fortran 7

9.271 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-7.2.0/gfortran/TRANSFER.html

Spec-Zone.ru

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