Spec-Zone.ru › GNU Fortran 9

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-9.3.0/gfortran/Non_002dFortran-Main-Program.html

Spec-Zone.ru

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