Опції. Частина 1, C / C + +, Програмування, статті

А. Согомонян, Азбука Visual Basic

Функція-це підпрограма (шматок програми), яку написав один раз можна потім використовувати (викликати).
Перш ніж використовувати функцію її треба обявіть, Оголошують функцію так:
возвращаемое_функцией_значение імя_функциі (аргументи_функціі
) ;

наприклад:
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, в цьому випадку функція себе не викличе.
Взагалі будьте обережні з рекурсією, може пам’яті не вистачити:].
В рекурсивної функції має бути умова при якому вона себе не викличе, і ця умова має коли-небудь виконатися.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*