Функции являются основными компонентами при построении программ на С и C++. Функции представляют из себя самостоятельные, отдельно программируемые модули и программа выглядит как модульная структура. Модульное программирование позволяет разбивать программу на работоспособные блоки, которые в целом составляют законченную программу. Например, одна функция может использоваться для ввода данных, другая — для печати, третья — для записи данных на диск. В действительности, все операции в программах на С и C++ осуществляются в теле некоторой функции, которая называется main().
Все функции должны иметь прототипы. Прототипы могут располагаться либо в самой программе на С или C++, либо в заголовочном файле. Объявление функции в С и C++ начинается с ее прототипа. Прототип функции достаточно прост; обычно он включается в начало программы для того, чтобы сообщить компилятору тип и количество аргументов, используемых некоторой функцией. Использование прототипов обеспечивает строгую проверку типов.
Функция может иметь тип void, hit, float и так далее. Это определяется воз-вращаемым_типом. Имя_функции() — это любое значимое наименование, выбранное вами для определения этой функции. Если в функцию передается некоторая информация, то необходимо также задать тип_аргумента и затем — имя_аргумента. Аргументы также могут иметь тип void, int, float и так далее. Можно передавать функции несколько значений, повторяя тип и имя аргумента и отделяя их от остальных аргументов запятой. Допускается перечисление только типов аргументов, однако такая форма прототипов используется нечасто.
Сама функция обычно следует за описанием функции main(). Функция может иметь следующий вид:
возвращаемый_тип имя_функции (типы_аргументов и имена_аргументов)
{
.
.
(объявления данных и тело функции)
.
.
return();
}
Пример: показан прототип функции и использование в программе:
#include <stdio.h>
int ladder (int ix,.int iy); /* прототип функции */
main()
{
int ia=23;
int ib=13;
int ic;
ic=iadder(ia,ib);
printf("The sum is: %d\n", ic); /* сумма */
return(0);
}
int iadder(int ix,int iy) /* объявление функции */
{
int iz;
iz=ix+iy;
return(iz); /* возврат из функции */
}
Функция называется iadder(). В прототипе декларируется, что функция имеет два целочисленных аргумента и возвращает целочисленное значение.
Написание приведенной выше функции на C++ практически аналогично: