Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Паскаль_2.doc
X
- •Процедуры и функции
- •Процедуры
- •Пример Вызов процедуры InpInt для ввода k целых чисел в массив m.
- •Функции
- •Формальные и фактические параметры
- •Параметры-значения Параметры-значения передаются основной программой в подпрограмму через стек в виде их копий. Сам параметр программы подпрограммой измениться не может.
- •Параметры-переменные
- •Этот вариант лучше предыдущего, так как в стеке не создается копия исходного массива, что улучшает быстродействие и экономит память.
- •Локализация имен
- •Пример Структура вложенной программы.
- •Основное правило Паскаля
- •Допустимые вызовы процедуры
- •Совместимость и преобразование типов данных
- •Параметры-массивы и строки открытого типа
- •Процедурные типы
- •Проблема совместимости
- •Рекурсия
- •Побочный эффект
- •Рекурсивная функция
- •Стеки для локальных переменных и параметров
- •Реализация стеков параметров в Паскале
Реализация стеков параметров в Паскале
Обсуждали отдельные стеки для N и next. В действительности компилятор поддерживает единый стек. Каждый раз, когда имеет место вызов процедуры или функции, все её параметры и локальные переменные заносятся в стек вместе с адресами памяти операторов вызова. Последние позволяют компьютеру осуществить возврат после выполнения процедуры или функции. Хотя в стеке могут содержаться множество копий параметров процедуры, в то же время в памяти присутствует единственная копия тела процедуры.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]