Spec-Zone.ru › GNU Fortran 14

2.11 Варианты межъязыковой совместимости

-fc-prototypes

Этот параметр сгенерирует C прототипы из BIND(C) объявлений переменных, типов и интерфейсов процедур и выведет их в стандартный вывод. ENUM пока не поддерживается.

Для сгенерированных прототипов может потребоваться включение соответствующего заголовка, например <stdint.h> или <stdlib.h>. Для типов, которые не указаны с помощью соответствующего вида из модуля iso_c_binding, в код добавляется предупреждение в виде комментария.

Для указателей на функции генерируется указатель на функцию, возвращающую int без явного списка аргументов.

Пример использования:

$ gfortran -fc-prototypes -fsyntax-only foo.f90 > foo.h

где C-код, предназначенный для взаимодействия с Fortran-кодом, затем использует #include "foo.h".

-fc-prototypes-external

Этот параметр сгенерирует C прототипы из внешних функций и подпрограмм и выведет их в стандартный вывод. Это может быть полезно для проверки правильности C-связей с Fortran-кодом. Этот параметр не генерирует прототипы для BIND(C) процедур, для этого используйте -fc-prototypes.

Для сгенерированных прототипов может потребоваться включение соответствующего заголовка, например <stdint.h> или <stdlib.h>.

Это в основном предназначено для кода старого образца, чтобы убедиться, что существующие C-связи соответствуют тому, что gfortran генерирует. Сгенерированные C-прототипы должны быть корректны для текущей версии компилятора, но могут не соответствовать требованиям других компиляторов или более ранних версий gfortran. Для новых разработок рекомендуется использовать функции BIND(C).

Пример использования:

$ gfortran -fc-prototypes-external -fsyntax-only foo.f > foo.h

где C-код, предназначенный для взаимодействия с Fortran-кодом, затем использует #include "foo.h".

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/Interoperability-Options.html

Spec-Zone.ru

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