![]() |
![]() |
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.
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.
Wenn eine Funktion verwendet wird, dann wird sie aufgerufen.
Beispiel:
int main()
In diesem Beispiel ruft die Funktion
{
double x, y;
cin >> x;
y = sin(x); // Die Funktion sin() wird aufgerufen.
// ...
return 0;
}
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.
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! |