Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб_3_метод_указания.doc
Скачиваний:
3
Добавлен:
09.11.2018
Размер:
393.73 Кб
Скачать

Правила оформления и вызова функций

  • в виде функции можно оформить любую (не обязательно повторяющуюся), логически завершенную часть программы;

  • перед функцией main() записывается прототип функции; ключевое слово void перед именем функции означает, что функция не возвращает результата. Далее следует имя функции, которое записывается по обычным правилам записи идентификаторов. Пустые круглые скобки после имени функции означают, что функция не имеет ни входных параметров, ни возвращаемых значений. При этом слово void в круглых скобках (но не в начале!!!) можно не писать. После прототипа обязательно записывается символ «;», а при описании функции этот символ не пишем.

  • в прототипе функции и при ее определении в заголовке обязательно надо записывать типы параметров, даже если они повторяются (в отличие от объявления переменных);

нельзя писать: void LINE(int Len, y, char ch) //ошибка

надо писать: void LINE(int Len, int y, char ch)

при этом имена параметров обязательны только в заголовке описания, а в прототипе можно указать только их типы: void LINE(int, int, char);

  • определение функции размещается после текста функции main(); в качестве заголовка функции записывается ее прототип, но без точки с запятой в конце; при необходимости внутри функции объявляются локальные переменные, предназначенные для хранения промежуточных величин;

  • тело функции представляет собой своеобразный шаблон вычислений с формальными параметрами;

  • фактические параметры (аргументы) – это приказ «проработать» тело функции для данных значений;

  • соответствие формальных параметров и аргументов должно выполняться по количеству, порядку следования и типу;

  • вызов функции осуществляется отдельным оператором вызова;

  • вызов функции типа void (т.е. не возвращающей значения) выполняется указанием ее имени и параметров, например: LINE(i, j, ch);

При отсутствии параметров, и в прототипе, и в определении функции, и при ее вызове необходимо обязательно записывать пустые круглые скобки.

  • точка возврата из функции определяется как место в программе, где описывается действие, которым продолжается программа по окончании выполнения вызова подпрограммы;

  • особенности return: оператор обязателен, если в заголовке функции тип результата отличен от void, т.е. возвращается одно значение; можно возвращать константу или значение одной переменной (как частный случай выражения); оператор может быть единственным в функции; таких операторов может быть в функции несколько, и находиться они могут не обязательно в конце функции, но выполняется всегда один из них;

  • безусловный выход из функции реализуется через операторы: return – завершение функции, переход к оператору, следующему за вызовом этой функции; exit(n) – завершение работы программы с кодом n, при этом возможно использование функции atexit() для обработки завершения программы при выходе из нее;

  • локальная память функции (локальная память процесса выполнения вызова функции) – это совокупность участков памяти, где хранятся:

  • параметры-значения функции

  • собственные локальные переменные функции

  • точка возврата из функции

  • переменная, в которой запоминается значение, возвращаемое из вызова

  • статическая память программы – область под программу и ее переменные;

  • программный стек – это память, выделяемая при вызове функции и освобождаемая после завершения ее работы (автоматическая память программы, область локальной памяти функции); механизм работы стека – Last In First Out (первый пришел, последний ушел);

  • локальные статические переменные – это возможность сохранения переменных между вызовами функций:

  • размещение локальных статических переменных в памяти – вместе с глобальными переменными программы

  • доступность – только во время выполнения вызова функции, в которой они определены.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]