Spec-Zone.ru › GNU Fortran 6

7.1.3 Переменные глобального доступа

Переменные могут быть доступны из C с помощью атрибута связи C, необязательно вместе с указанием имени связи. Эти переменные должны быть объявлены в части объявления MODULE, быть типа, совместимого с другими языками, и не иметь атрибута pointer и allocatable.

MODULE m
  USE myType_module
  USE ISO_C_BINDING
  integer(C_INT), bind(C, name="_MyProject_flags") :: global_flag
  type(myType), bind(C) :: tp
END MODULE

Здесь, _MyProject_flags — это чувствительное к регистру имя переменной, видимое из программ на C, в то время как global_flag — это нечувствительное к регистру имя, видимое из Fortran. Если имя связи не указано, как для tp, имя связи C совпадает с (строчным) именем связи Fortran. Если имя связи указано, после двойного двоеточия может быть только одна переменная. Предупреждение: нельзя использовать глобальную переменную для доступа к errno библиотеки C, так как стандарт C допускает, что это макрос. Используйте вместо этого IERRNO встроенную функцию (расширение GNU).

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

Spec-Zone.ru

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