Spec-Zone.ru › GNU Fortran 11

7.3 Программа основного модуля, не написанная на Fortran

• _gfortran_set_args: Сохранить аргументы командной строки
• _gfortran_set_options: Установить флаги опций библиотеки
• _gfortran_set_convert: Установить преобразование порядка байтов
• _gfortran_set_record_marker: Установить длину маркеров записей
• _gfortran_set_fpe: Установить условия для возникновения исключений с плавающей точкой
• _gfortran_set_max_subrecord_length: Установить длину подзаписей

Даже при программировании с использованием смешанных языков, скорее всего, вам не нужно знать или использовать информацию из этого раздела. Поскольку он относится к внутренней структуре GNU Fortran, он также может меняться в мажорных версиях GCC.

При компиляции PROGRAM с помощью GNU Fortran генерируется функция с именем main (в таблице символов объектного файла), которая инициализирует библиотеку libgfortran, а затем вызывает фактическую программу, использующую имя MAIN__, по историческим причинам. Если вы связываете процедуры, скомпилированные GNU Fortran, например, с программой на C или C++, или с программой на Fortran, скомпилированной другим компилятором, библиотека libgfortran не инициализируется, и некоторые встроенные процедуры, например, те, которые используются для получения аргументов командной строки, не работают должным образом.

Поэтому, если ваша PROGRAM не скомпилирована с GNU Fortran, и процедуры, скомпилированные с GNU Fortran, требуют встроенных процедур, полагающихся на инициализацию библиотеки, вам необходимо самостоятельно инициализировать библиотеку. Используя стандартные параметры, gfortran вызывает _gfortran_set_args и _gfortran_set_options. Инициализация первой необходима, если вызываемые процедуры обращаются к командной строке (и для отслеживания происхождения вызовов); последняя устанавливает некоторые флаги, основанные на выбранном стандарте или для включения отслеживания происхождения вызовов. В типичных программах нет необходимости вызывать какие-либо функции инициализации.

Если ваша PROGRAM скомпилирована с GNU Fortran, вам не следует вызывать ни одну из следующих функций. Функции инициализации libgfortran показаны в синтаксисе C, но с помощью связывания с C к ним также можно получить доступ из Fortran.

Далее: Правила именования и передачи аргументов, Предыдущее: Директивы компилятора GNU Fortran, Вверх: Программирование на смешанных языках [Содержание][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gfortran/Non_002dFortran-Main-Program.html

Spec-Zone.ru

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