Общий вид функции выглядит следующим образом:
Тип_возвращаемого_значения имя_функции(список_параметров)
{
Тело функции
}
Тип_возвращаемого_значения определяет тип переменной, которую возвращает функция. Функция может возвращать переменные любого типа, кроме массива. В списке параметров перечисляются типы аргументов и их имена, разделенные запятыми. Если функция не имеет аргументов, то ее список параметров пуст. В этом случае скобки все равно необходимы.
В языке С++ с помощью одного оператора можно объявлять несколько переменных одного типа, разделяя их запятыми. В противоположность этому, каждый параметр функции должен быть объявлен отдельно. Таким образом, общий вид объявления параметров в заголовке функции выглядит так:
func(int i, int k, int j);
Аргументы функций
Если функция имеет аргументы, в ее заголовке должны быть объявлены переменные, принимающие их значения. Эти переменные называются формальными параметрами функции. Как и локальные переменные, они создаются при входе в функцию и уничтожаются при выходе из нее. Рассмотрим пример:
|
|
/* функция возвращает 1, если символ с является частью строки s; в противном случае она возвращает 0*/
int_is_in(char *s, char c)
{
while (*s)
if (*s==c) return 1;
else s++;
return 0;
}
Приведенная функция имеет два параметра: s и c. Она возвращает 1, если символ входит в строку s и 0 в противном случае.
Виды функций
Все функции можно разделить на 3 категории. К первой категории относятся вычислительные функции. Они выполняют некие операции над своими аргументами и возвращают результат вычислений. К примеру подобными функциями являются стандартные библиотечные функции sqrt() и sin(), вычисляющие квадратный корень и синус числа соответственно.
Ко второй категории функций относятся функции, выполняющие обработку информации. Информация, возвращаемая ими означает, успешно выполнена функция или нет. В качестве примера можно привести функцию fclose(), возвращающую 0 при успешном закрытии файла и eof в противном случае.
Функции третьего типа не имеют явно возвращаемого значения. По существу данные функции являются процедурами т.е. не вычисляют каких-либо значений. К этой категории относится функция exit(), прекращающая выполнение программы. Все функции, не возвращающие каких-либо значений следует объявлять с помощью спецификатора void. Подобные функции нельзя использовать в выражениях.