Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+ЭУМКД КИТ-ч1-Бутов.docx
Скачиваний:
9
Добавлен:
05.05.2019
Размер:
262.85 Кб
Скачать

Тема 10. Функции

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

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

Любая функция должна быть определена. Определение функции состоит из заголовка и тела:

тип имя ([список параметров]) //заголовок функции

{

тело функции

}

Заголовок функции задает ее имя, тип возвращаемого значения (результата) и список передаваемых параметров. Тип возвращаемого функцией значения может быть любым, кроме массива и функции (но может быть указателем на массив или функцию). Если функция не должна возвращать значение, указывается тип void. Список параметров определяет величины, которые требуется передать в функцию при ее вызове. Элементы списка параметров разделяются запятыми. Для каждого параметра, передаваемого в функцию, указывается его тип и имя.

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

int sumFunc(int n, int m, int p)

{

int result; //эту и 2 последующие строки можно

result = n + m + p; //заменить одной строкой:

return result; // return = n + m + p;

}

Эта простейшая функция, имя которой sumFunc, предназначена для нахождения суммы трех целых чисел n, m и p, которые передаются ей в качестве параметров. Возврат из функции подсчитанной суммы выполняется с помощью оператора, имеющего следующий формат:

return [выражение];

После того как функция определена, ее можно вызывать из других функций программы, например, из главной функции main. Для вызова функции нужно указать ее имя, за которым в круглых скобках через запятую перечисляются имена передаваемых в функцию аргументов. В определении и при вызове одной и той же функции типы и порядок следования параметров и аргументов должны совпадать:

void main()

{

int a = 10, b = 20, c = 30, res;

puts("a = 10, b = 20, c = 30");

res = sumFunc(a, b, c); //эту и следующую строки можно совместить:

printf("a + b + c = %d", res); // printf("a + b + c = %d", sumFunc(a, b, c));

}

Если в программе сначала определить главную функцию main, а затем – функцию sumFunc, то перед функцией main нужно будет поместить так называемый прототип функции sumFunc, иначе при выполнении оператора

res = sumFunc(a, b, c);

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

#include <stdio.h>

int sumFunc(int n, int m, int p); //прототип функции sumFunc

void main() //определение функции main

{

int a = 10, b = 20, c = 30;

puts("a = 10, b = 20, c = 30");

printf("a + b + c = %d", sumFunc(a, b, c)); //вызов функции sumFunc

}

int sumFunc(int n, int m, int p) //определение функции sumFunc

{

return n + m + p;

}

В прототипе функции имена параметров можно не указывать, достаточно лишь указать их тип:

int sumFunc(int, int, int);

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