Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C-lections / lec_7_functions.ppt
Скачиваний:
28
Добавлен:
27.03.2015
Размер:
210.43 Кб
Скачать

Функции

Введение

Определение.

Прототип, Тело, Вызов.

Формальные и Фактические параметры, Возвращаемое значение.

Рекурсивные функции

Введение.

Экспериментально показано, что наилучшим способом создания и поддержки больших программ является их конструирование из маленьких фрагментов, или модулей, каждый из которых более управляем, чем сложная программа.

Программные модули могут быть реализованы в виде функций.

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

Каждая функция должна выполнять одну хорошо определенную задачу. Имя функции должно наглядно отражать данную задачу, что способствует успешному повторному использованию.

Если вы не можете выбрать подходящее имя выражающее суть работы функции, то возможно на нее возложено слишком много различных задач. Обычно лучше разбить такую функции на несколько более мелких.

Определение.

Функция - это именованная часть программы, к которой можно обращаться из других частей программы столько раз, сколько потребуется.

Функция - это совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Каждая функция должна иметь имя, которое используется для ее объявления, определения и вызова.

Влюбой программе на СИ должна быть функция с именем main (главная функция), именно с этой функции, в каком бы месте программы она не находилась, начинается выполнение программы.

Вотличие от других языков программирования высокого уровня в языке СИ нет деления на процедуры, подпрограммы и функции, здесь вся программа строится только из функций.

Прототип.

Прототип - это явное объявление функции, которое предшествует определению функции.

<тип возвращаемого значения> <имя функции

Типы аргументов и возвращаемого значения при объявлении функции должны соответствовать типам аргументов и возвращаемого значения в определении функции.

Отсутствие точки с запятой в конце прототипа функции является синтаксической ошибкой.

Тело.

Тело функции - это составной оператор, содержащий операторы, определяющие действие функции.

<тип возвращаемого значения> <имя функции

{

<объявления локальных переменн

}

Точка с запятой после правой круглой скобки, параметров в описании функции, является синтаксической

Повторное определение параметра функции как функции является синтаксической ошибкой.

Вызов.

Вызов функции служит своего рода «меткой» при достижении которой происходит переход к телу функции.

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

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

Формальные и параметры.

Формальные параметры - это переменные, используемые внутри тела функции и получающие значение при вызове функции путем копирования в них значений соответствующих фактических параметров.

Все переменные, объявленные в теле функции без указания класса памяти, имеют класс памяти auto, т.е. они являются локальными. При вызове функции локальным переменным отводится память в стеке и производится их инициализация. Управление передается первому оператору тела функции и начинается выполнение функции, которое продолжается до тех пор, пока не встретится оператор return или последний оператор тела функции. Управление при этом возвращается в точку, следующую за точкой вызова, а локальные переменные становятся недоступными. При новом вызове функции для локальных переменных память распределяется вновь, и поэтому старые значения локальных переменных теряются.

Соседние файлы в папке C-lections