38
Различают системные (в составе систем программирования) и собственные
функции.
Разбиение программ на функции дает следующие преимущества:
• Функцию можно вызывать из разных мест программы, что позволяет
избежать повторного программирования.
• Одну и ту же функцию можно использовать в разных программах.
• Функции повышают уровень модульности программы и облегчают её
проектирование.
• Использование функций облегчает чтение и понимание программы,
ускоряет поиск и исправление ошибок.
Первоначально функцию можно представить как некоторый «черный
ящик», у которого несколько входов и один выход (см. рис. 2.8.1). В «черный
ящик» поступает информация, обрабатывается и выдаётся результат. Для
программиста неважно, что происходит внутри функции, ему необходимо только
знать входы и
выход. Использование подобного подхода позволяет на стадии
проектирования сконцентрировать внимание на общей структуре программы.
Рис. 2.8.1. Схема работы функции
В языке Си нет требования, чтобы определение функции обязательно
предшествовало её вызову. Функции могут определяться как до функции main(),
так и после неё. Нельзя определять одну функцию внутри другой.
Возврат значения в вызвавшую функцию осуществляется с помощью
оператора return.
Пример функции вычисления факториала
#include <stdio.h>
/* Определение функции factorial()*/
double factorial(double i)