Spec-Zone.ru › GNU Fortran 5

6.1.13 Поддержка констант Холлерита

GNU Fortran поддерживает константы Холлерита в присваиваниях, аргументах функций и DATA и ASSIGN операторах. Константа Холлерита записывается как строка символов, предваряемая целым числом, указывающим количество символов, и буквой H или h, и хранится в байтовом формате в числовой (INTEGER, REAL, или complex) или LOGICAL переменной. Константа будет дополнена или усечена, чтобы соответствовать размеру переменной, в которой она хранится.

Примеры корректного использования констант Холлерита:

complex*16 x(2)
data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/
x(1) = 16HABCDEFGHIJKLMNOP
call foo (4h abc)

Примеры некорректных констант Холлерита:

integer*4 a
a = 8H12345678 ! Valid, but the Hollerith constant will be truncated.
a = 0H         ! At least one character is needed.

В общем случае константы Холлерита использовались для обеспечения базовой возможности работы со строками символов в ранних компиляторах Fortran до появления CHARACTER переменных в Fortran 77; в таких случаях стандартный эквивалент — конвертация программы для использования правильных строк символов. В некоторых случаях может быть необходимо специально инициализировать числовую переменную заданной последовательностью байтов. В этих случаях тот же результат можно получить, используя оператор TRANSFER, как в этом примере.

INTEGER(KIND=4) :: a
a = TRANSFER ("abcd", a)     ! equivalent to: a = 4Habcd

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

Spec-Zone.ru

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