Оператори тіла функції виконується тільки тоді, коли здійснюється звертання до даної функції – виклик функції. Виклик функції позначається операцією «круглі дужки»:
ім’я_функції ( список_фактичних_параметрів )
список фактичних параметрів – це послідовність виразів, кожен з яких задає значення відповідного формального параметра, вказаного в описі даної функції. Фактичні і формальні параметри обов’язково мають бути узгодженими за кількістю, порядком розташування і типами.
Виклик функції, в оголошенні якої вказано тип void, є окремим оператором програми – наприклад, це виклик функції PrintSqrt( 4 ); – не входить до складу будь-якого виразу, закінчується крапкою з комою. Як окремий оператор можна організовувати і виклик функцій, які повертають значення – воно буде проігноровано.
Якщо функція повертає значення, воно передається в те місце програми, з якого викликали дану функцію. Значення, повернене функцією, можна використовувати у всіх виразах як звичайний операнд, тип якого збігається з типом значення функції.
Компілятор контролює правильність звертання до функції та застосування значення, яке вона повертає, тому опис функції повинен передувати звертанню до неї. Довільний порядок запису функцій забезпечується використанням прототипів функцій. Прототип функції повторює рядок її заголовку і закінчується знаком крапка з комою:
тип_значення_функції ім’я_функції ( оголошення_параметрів );
Прототипи функцій необхідно вказувати перед першим звертанням до функції. Часто прототипи функцій записують на початку програми, а повні описи функцій розміщують пізніше. У списку параметрів прототипу функції можна вказувати тільки типи параметрів, опускаючи їх імена. Дозволено також вказувати в прототипі імена параметрів, відмінні від тих, що використані в описі функцій.
Використаємо прототипи функції в програмі:
#include <iostream>
using namespace std;
int sum( int a, int b ); // Прототип функції sum
int max( int a, int b ); // Прототип функції max
int main() {
int x = 3, y = 4;
cout << sum( x, y ) << endl;
cout << max( 2, x ) << endl;
}
int sum( int a, int b ) {
int t;
t = a + b;
return t;
}
int max( int a, int b ) {
if ( a > b )
return a;
return b;
}