Funktionen - wozu?

Dieser Abschnitt sollte den meisten Lesern schon vertraut sein - wer sich diese Frage nicht mehr stellt, möge weiterblättern. Für alle anderen hier eine kurze Erläuterung der Idee der Prozeduralen Programmierung:

Oft werden Befehle immer wieder in der gleichen Reihenfolge ausgeführt. Mit den bisher kennengelernten Konstrukten käme man nicht umhin, diese immer wieder hinzuschreiben. Selbst wenn man dazu die Fähigkeiten eines Texteditors nutzt und den entsprechenden Programmteil nur von der einen an die andere Stelle kopiert, so bleiben die Befehle immer noch doppelt vorhanden. Dies hat nicht nur Auswirkungen auf die Größe des Programms in uncompilierter Form, sondern auch auf die ausführbare Version, da der Compiler diese Redundanz i.d.R. nicht erkennt und dementsprechend nicht auflöst.

Abhilfe schaffen hier Prozeduren, das sind Programmteile, die eine in sich geschlossene Sinneinheit ergeben. Mit ihnen ist es möglich, häufig genutzte Befehlsfolgen nur einmal programmieren zu müssen, um sie dann an den benötigten Stellen wie einen Befehl aufzurufen. Durch die Möglichkeit, Variablen und Konstanten an eine Prozedur zu übergeben - die sogenannten Parameter - kann man Prozeduren schreiben, die sehr vielseitig sind, da sie diese Parameter auslesen, aber auch verändern können. Je nach Verwendung eines Parameters spricht man von Eingabe-, Ausgabe- bzw. Ein/Ausgabe-Parameter.

In vielen prozeduralen Programmiersprachen kann eine Prozedur auch einen Wert zurückgeben, dann wird sie im wesentlichen wie ein Wert genutzt. Man spricht dann von Funktionen, u.a. da eine ihrer Hauptverwendungen die Implementierung von mathematischen Funktionen ist (bzw. man sie mit geeigneter Interpretation immer als solche auffassen kann). Das Ergebnis einer Funktion - ihr Rückgabewert - kann dann z.B. einer Variablen zugewiesen werden.

In C++ wird zwischen Prozeduren und Funktionen nicht unterschieden, Funktionen werden hier als Obermenge der Prozeduren angesehen, Prozeduren als Spezialfall von Funktionen. Die einzige Unterscheidung die gemacht wird, ist die Form des Aufrufs, doch dazu später mehr.