Spec-Zone.ru › GNU Fortran 4

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

Spec-Zone.ru

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