Spec-Zone.ru › GNU Fortran 9

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-6.4.0/gfortran/Hollerith-constants-support.html

Spec-Zone.ru

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