Funkcje to opisy czynności do wykonania. Generalnie, z punktu widzenia programu, funkcja jest definicją instrukcji, która na podstawie danych wejściowych (argumentów) dostarcza w miejscu jej użycia (wywołania) wartość określonego typu. Funkcje są więc sposobem na realizację tego samego czy podobnego zadania wielokrotnie, bez potrzeby wielokrotnego powtarzania w naszym kodzie tych samych sekwencji instrukcji.
Definiowanie funkcji jest podobne do definiowania funkcji w Javie i wielu innych językach. Jest jednak szereg ważnych różnic.
W Javie wszystkie funkcje są składowymi jakiejś klasy: albo metodami, albo jej funkcjami statycznymi. W C/C++ natomiast funkcje można definiować poza wszystkimi klasami (w C jest to jedyna możliwość). Zresztą, jak wiemy, w C/C++ można w ogóle nie definiować i nie używać żadnych klas czy struktur. Tak zdefiniowane funkcje nazywamy funkcjami globalnymi.
Przyzwyczaić się też trzeba do innej cechy języka C/C++ (nieznanej w Javie): użycie funkcji w tekście programu musi być leksykalnie poprzedzone jej definicją lub przynajmniej deklaracją. Leksykalnie, a więc definicja lub deklaracja funkcji musi wystąpić w tekście programu wcześniej niż jej jakiekolwiek użycie. Jak mówiliśmy już w rozdziale wstępnym , dyrektywa #include włącza plik do tekstu przetwarzanego programu; można więc na przykład definiować czy deklarować funkcję we włączanym pliku nagłówkowym i używać tej funkcji w dalszej części pliku z programem.
T.R. Werner, 21 lutego 2016; 20:17