Функция — это именованный фрагмент программы. Данные могут передаваться в функцию и функция может возвращать значение.
Программа на языке Си состоит из функций, произвольным образом упорядоченных в файле. Фактически функции могут быть размещены и в разных файлах. Концепция функции в языке Си покрывает все типы подпрограмм в других языках программирования: подпрограммы, функции и процедуры.
Обычно программы на языке Си состоят из большого числа небольших функций, а не из немногих больших.
Функции позволяют писать модульные программы, в которых каждая функция выполняет собственную задачу. Функции обычно невелики (страница или меньше, могут быть и однострочные).
Функции позволяют избежать дублирования кода в одной программе. Кроме того, несколько программ могут совместно использовать код функции.
Программы легче читаются, так как детали “скрыты” внутри функций.
Программы легче разрабатываются, поскольку функции позволяют разбить большие задачи на задачи меньшего размера, более простые для решения.