Функции в языке Си (C)Функция - это самостоятельная единица программы, созданная для решения конкретной задачи. Функция в языке С играет ту же роль, что и подпрограммы или процедуры в других языках. Функциями удобно пользоваться, например, если необходимо обработать один и тот же код программы. Как и переменные, функции надо объявлять (declare). Функцию необходимо объявить до её использования. Запомните это простое правило - сначала объяви, а потом используй. Каждая функция языка С имеет имя и список аргументов (формальных параметров). Основная форма описания (definition) функции имеет вид: тип <имя функции>(список параметров) { } Объявление (прототип) функции имеет вид: тип <имя функции>(список параметров); Обратите внимание на то, что при описании функции после заголовка функции Вызов функции делается следующим образом: <имя функции>(параметры); или <переменная>=<имя функции>(параметры); При вызове функции так же ставиться точка с запятой. Почему надо объявлять функцию до использования? Дело в том, что для правильной работы кода функции машине надо знать тип возвращаемого значения, количество и типы аргументов. При вызове какой-либо функции копии значений фактических параметров записываются в стек, в соответствии с типами указанными в ее прототипе. Затем происходит переход в вызываемую функцию. Функции возвращающие значение.Давайте рассмотрим пример в котором опишем две функции, соответственно объявим их и последовательно вызовем. Но в этом примере для одной функции мы укажем тип возвращаемого значения - int. /* Две наших функции */ #include <stdio.h> // Подключаем файл заголовков функций (их объявлений) int x; // Объявляем переменную x (глобальная переменная) void main(void) { int function2(); // function2() будет возвращать значение типа int x = 10; // Присваиваем переменной x значение 10 printf("До вызова функции function2() x равно %dn", x); function1(); // Вызываем функцию function1() x = function2(); // Вызываем функцию function2() printf("После вызова функции function2() x равно %dn", x); } /* Описание наших функций */ void function1(void) { printf("Сделан вызов первой функцииn"); } int function2(void) return y; // Возвращаем значение y Функции с параметрами.Функции языка С могут иметь параметры. Эти параметры передаются в функцию и там обрабатываются. |