Библиотека Интернет Индустрии I2R.ru |
|||
|
Функции, часть 1Функция-это подпрограмма (кусок программы), которую написав один раз можно потом использовать(вызвать). Прежде чем использовать функцию её надо объявить. Объявляют функцию так: возвращаемое_функцией_значение имя_функции ( аргументы_функции ) ; например: int myfunction( int x, int y); Функция может и не принимать аргументов, но скобки все равно ставить надо: Если вы не знаете какие аргументы будет принимать ваша функция то её можно обявить так: Возвращаемое значение это как бы тип функции, т. е значения какого типа она возвращает после выполнения. Например есть у вас фукция func(), которая возвращает значение типа int, то, если написать Итак, функцию мы объявили, сейчас надо написать тело функции (то есть, что она будет делать). Для этого пишем почти то же самое, что и при объявлении, только вместо ; в фигурных скобках пишется {тело функции}: int afunction (int a, float b) return 1 - значит, что функция возвращает значение 1, то есть результатом выполнения afunction(2,3) будет число 1. В каждой программе на С++ есть главная функция main(), которая вызывается сама (точнее её вызывает операционная система при запуске программы). Она обычно имеет тип int. Хотя никто вам не запрещает (за исключением некоторых компиляторов) объявить функцию main() как void, но стандарты требуют чтоб main() имела тип int и возвращала значение 0. inline функции При каждом вызове функции в памяти создается её копия, то есть вызов функции расходует память. Если у вас есть маленькая функция которую приходится часто вызывать то её можно обявить как inline (подставляемую). Объявленная таким образом функция не вызывается каждый раз, вместо этого текст функции подставляется в то место программы где она вызвана. При этом экономится память но увеличивается размер кода.Чтобы обявить функцию как inline надо просто поставить слово inline перед её объявлнием: Рекурсия Вообще любая функция может вызвать саму себя. Это называется рекурсией. Вот пример с рекурсией, вычислим степень числа.
float power( float number,int n) Все очень просто, для того чтоб получить число в степени n умножаем число на себя в степени n-1.А чтобы получить степень n-1 умножаем степень n-2 на то же число.И так до текс пор пока n-... не будет 1, в этом случае функция себя не вызовет. Вообще будьте осторожны с рекурсией, может памяти не хватить. В рекурсивной функции должно быть условие при котором она себя не вызовет, и это условие должно когда-нибудь выполниться. |
|
2000-2008 г. Все авторские права соблюдены. |
|