Ближний и дальний вызовы подпрограмм.
Размещение подпрограммы в библиотеке (модуле).
Размещение подпрограммы в файле.
Расположение подпрограммы в тексте программы.
Местоположение подпрограмм в тексте и вне текста программы.
Подпрограммы
ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ (PASCAL)
Тема:
IV. Парадигмы программирования
4.7. Переменные, обрабатываемые при вызове подпрограмм:
1. фактические параметры, подставленные на место формальных параметров-переменных;
2. переменные, поименованные именами формальных параметров-значений, получившие значения фактических выражений; существуют только внутри подпрограмм;
3. локальные переменные, описанные внутри данной подпрограммы; используются как рабочие переменные и существуют только внутри подпрограммы; начальное значение этих переменных неопределенное;
4. глобальные переменные, несовпадающие по имени с именами локальных переменных и формальных параметров;
5. только в функциях формируется значение переменной-результата функции, совпадающей по имени с именем функции и использующейся как операнд в выражении.
Фактические параметры (переменные, константы, выражения) и глобальные переменные могут использоваться как входные данные подпрограмм.
Фактические параметры-переменные, глобальные переменные и переменная-результат функции могут использоваться как выходные данные подпрограмм.
Следует отметить, что использование глобальных данных в подпрограммах считается нежелательным стилем программирования, особенно при разработке больших программ.
Подпрограммы могут располагаться в виде отдельного раздела внутри описательной части текста программы.
Размещение подпрограммы возможно в отдельном текстовом файле, который может иметь расширение PAS или INC. В этом случае текст подпрограммы включается в текст программы директивой компилятора {$I имя файла}.
Подпрограмма может находиться в библиотеке (модуле) в виде машинных кодов. Существует возможность для пользователя создавать собственные библиотеки. Тексты библиотек представляют собой программные единицы, называемые модулями. Модули после трансляции располагаются в файлах с расширением TPU.
4.9.1. Ближний вызов подпрограмм – это вызов в пределах 64 К, т. е. в пределах одного сегмента кода, который выделяется основной программе и каждому исполняемому в ней модулю (экономит 1 байт памяти и несколько микросекунд).
Если подпрограмма располагается внутри текста программы или во включаемом файле, то она может быть оттранслирована с параметром транслятора ближний вызов, который либо устанавливается по умолчанию в опциях турбо-среды, либо задается как параметр компилятора {$F-} в начале текста подпрограммы.
4.9.2. Дальний вызов подпрограмм – это вызов из любого сегмента.
Если подпрограмма располагается в модуле или, независимо от расположения текста, используется в качестве фактического параметра при обращении к другой подпрограмме, то текст подпрограммы должен быть оттранслирован с параметром транслятора дальний вызов, который либо устанавливается в опциях турбо-среды, либо задается как параметр компилятора {$F+} в начале текста подпрограммы.