На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»
I2R » И2Р Программы » Программирование » C, C++

Функции, часть 1

Функция-это подпрограмма (кусок программы), которую написав один раз можно потом использовать(вызвать). Прежде чем использовать функцию её надо объявить. Объявляют функцию так:

возвращаемое_функцией_значение имя_функции ( аргументы_функции ) ;

например:

int myfunction( int x, int y);

Функция может и не принимать аргументов, но скобки все равно ставить надо:
float anotherfunction();

Если вы не знаете какие аргументы будет принимать ваша функция то её можно обявить так:
int func(...);
Это значит что функцию можно вызывать с любым количеством аргументов любого типа, например:
func ( 1, 2,3, "a string.." ,10); и т.д.
Хотя объявлять такие функции очень не рекомендуется, и вообще вряд ли вам это понадобится.

Возвращаемое значение это как бы тип функции, т. е значения какого типа она возвращает после выполнения. Например есть у вас фукция func(), которая возвращает значение типа int, то, если написать
int х;
х=func();

то x присвоится значение типа int, возвращенное функцией. Функция может и не возвращать значения. Тогда её тип надо объявить как void (пустой).

Итак, функцию мы объявили, сейчас надо написать тело функции (то есть, что она будет делать). Для этого пишем почти то же самое, что и при объявлении, только вместо ; в фигурных скобках пишется {тело функции}:

int afunction (int a, float b)
{
//что-нибудь делаем с a и b
return 1;
}

return 1 - значит, что функция возвращает значение 1, то есть результатом выполнения afunction(2,3) будет число 1.

В каждой программе на С++ есть главная функция main(), которая вызывается сама (точнее её вызывает операционная система при запуске программы). Она обычно имеет тип int. Хотя никто вам не запрещает (за исключением некоторых компиляторов) объявить функцию main() как void, но стандарты требуют чтоб main() имела тип int и возвращала значение 0.

inline функции

При каждом вызове функции в памяти создается её копия, то есть вызов функции расходует память. Если у вас есть маленькая функция которую приходится часто вызывать то её можно обявить как inline (подставляемую). Объявленная таким образом функция не вызывается каждый раз, вместо этого текст функции подставляется в то место программы где она вызвана. При этом экономится память но увеличивается размер кода.Чтобы обявить функцию как inline надо просто поставить слово inline перед её объявлнием:
inline float ifunc();

Рекурсия

Вообще любая функция может вызвать саму себя. Это называется рекурсией. Вот пример с рекурсией, вычислим степень числа. float power( float number,int n)
{
if(n==1) return number; //число в степени 1 это само число
return number*power(number,n-1);
}

Все очень просто, для того чтоб получить число в степени n умножаем число на себя в степени n-1.А чтобы получить степень n-1 умножаем степень n-2 на то же число.И так до текс пор пока n-... не будет 1, в этом случае функция себя не вызовет. Вообще будьте осторожны с рекурсией, может памяти не хватить. В рекурсивной функции должно быть условие при котором она себя не вызовет, и это условие должно когда-нибудь выполниться.

А. Согомонян
Азбука Технологий Программирования

Другие разделы
C, C++
Java
PHP
VBasic, VBS
Delphi и Pascal
Новое в разделе
Базы данных
Общие вопросы
Теория программирования и алгоритмы
JavaScript и DHTML
Perl
Python
Active Server Pages
Программирование под Windows
I2R-Журналы
I2R Business
I2R Web Creation
I2R Computer
рассылки библиотеки +
И2Р Программы
Всё о Windows
Программирование
Софт
Мир Linux
Галерея Попова
Каталог I2R
Партнеры
Amicus Studio
NunDesign
Горящие путевки, идеи путешествийMegaTIS.Ru

2000-2008 г.   
Все авторские права соблюдены.
Rambler's Top100