zurück weiter

C++ - Funktionen nutzen (1)

G.Eichelsdörfer - Staatliche Technikerschule Weilburg

In C++ werden Unterprogramme, auch Routinen genannt, als Funktionen bezeichnet. Hier wird anders als beispielsweise in der Programmiersprache Pascal nicht zwischen Prozeduren (ohne Resultat) und Funktionen (mit Resultat) unterschieden.

Wozu werden Funktionen benötigt?

Funktionen erfüllen begrenzte Aufträge. Sie sind dazu da, bestimmte Aufgaben zu erledigen. Sie haben bereits Funktionen verwendet.
In der Anweisung cout << "Hallo!"; ist << der Ausgabeoperator. Ein solcher Operator ist prinzipiell eine Funktion, er wird nur etwas anders verwendet als dies bei Funktionen der Fall ist. Der obige Ausgabeoperator ist eine Funktion, die einen String über einen Ausgabestream (hier cout) ausgibt.
Mathematische Funktionen wie sin(), cos(), sqrt() berechnen zu Argumenten Werte und liefern diese Werte als Resultate.

Wie wird eine Funktion verwendet.

Wenn eine Funktion verwendet wird, dann wird sie aufgerufen.
Beispiel:
int main()
{
 double x, y;
 cin >> x;
 y = sin(x); // Die Funktion sin() wird aufgerufen.
 // ...
 return 0;
}
In diesem Beispiel ruft die Funktion main() die Funktion sin() auf. main() ist also die aufrufende und sin() die aufgerufene Funktion. Wenn die aufgerufene Funktion ein Resultat liefert, kann dieses beispielsweise einer Variablen zugewiesen werden. Im obigen Beispiel wird der von sin(x) gelieferte Wert der Variablen y zugewiesen.

Was geschieht bei einem Funktionsaufruf?

Wenn eine Funktion aufgerufen wird, dann wird die aufrufende Funktion verlassen und an den Anfang der aufgerufenen Funktion gesprungen. Die Stelle, an der die aufrufende Funktion verlassen wird, legt der Prozessor als Rückkehradresse auf einem Stapel ab. Dann fährt er mit der Abarbeitung am Anfang der aufgerufenen Funktion fort. Am Ende der aufgerufenen Funktion steht eine Anweisung zur Rückkehr. Diese bearbeitet der Prozessor, indem er die auf dem Stapel abgelegte Rückkehradresse nimmt um an dieser Stelle des Programms fortzufahren.

Sie sehen rechts eine Abbildung, die den Ablauf beim Aufruf von Funktionen verdeutlichen soll.

An der Stelle A wird f1 verlassen und f2 aufgerufen (Aufruf 1).

Bei B ruft f2 die Funktion f3 auf. Am Ende von f3 kehrt der Prozessor zu f2 zurück.

Am Ende von f2 erfolgt die Rückkehr zu f1 (Rückkehr 1).

Bei C wird f2 erneut von f1 aufgerufen (Aufruf 2) und kehrt mit Rückkehr 2 an die Aufrufstelle zurück.

Auftrag: Erweitern Sie die Abbildung an der Stelle X um Pfeile, die den Aufruf von f3 darstellen!