11.1 Wstęp

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, 23 lutego 2019; 23:59