Deklaracja funkcji jest tylko pouczeniem dla kompilatora, że nazwa funkcji jest poprawna. Nie powoduje to wygenerowania żadnego kodu wynikowego. Deklarację funkcji można powtórzyć dowolną ilość razy i nie spowoduje to błędów kompilacji czy linkowania.
Definicja funkcji zawiera ciało funkcji, czyli jej kod.
TypZwracany nazwaFunkcji(TypArgumentu1, ... ,TypArgumentuN) { // tutaj znajduje się kod funkcji } //przykład double poleProstokata(double bokX, double bokY) { return bokX * bokY; }
Definiując funkcję podajemy jej sygnaturę (czyli typ zwracany, nazwę i argumenty). Kod funkcji podajemy w nawiasach wąsiastych. Lista argumentów może być pusta.
Do zwracania wartości przez funkcję służy słowo kluczowe return.