![]() |
![]() |
C++ - Funktionen nutzen (2) |
G.Eichelsdörfer - Staatliche Technikerschule Weilburg |
Ein Programm besitzt primär die Aufgabe Werte zu verarbeiten. Funktionen erfüllen ebenfalls primär diese Aufgabe.
Eine Funktion soll im Normalfall nicht etwa die zu verarbeitenden Werte per cin
einlesen.
Sie bekommt die zu verarbeitenden Werte zugeteilt. Dabei kann bei jedem Aufruf einer Funktion ein anderer Wert zugeteilt
werden.
Ein Produktionsbetrieb schafft zumeist höhere Werte, indem er die zugelieferten (Roh-)Produkte weiter verarbeitet. Die zugelieferten Produkte oder Rohstoffe werden "veredelt". Ein Programm veredelt Daten. So wie es in einem Produktionsbetrieb spezialisierte Abteilungen und Mitarbeiter gibt, so enthält ein Programm spezialisierte Funktionen, die für einzelne und zumeist kleine Teilaufgaben zuständig sind.
Eine Funktion importiert einen oder auch mehrere Werte. Sie verarbeitet diese (Veredelungsprozess). Zumeist exportiert sie das Resultat ihrer Verarbeitung. |
![]() |
Betrachten wir einmal den folgenden Aufruf:
y = sin(x);
Die Funktion sin()
soll den Sinuswert zum Argument x
liefern.
Man nennt x
in diesem Aufruf den Aufrufparameter oder Aktualparameter (aktueller Parameter)
oder auch nur kurz den Parameter. Ein solcher Parameter enthält also einen von der Funktion zu verarbeitenden
Wert. Dieser Parameter wird, so wie die Rückkehradresse, ebenfalls auf den Stapel gelegt.
Im obigen Beispiel wird der Wert in x
auf den Stapel gelegt. Dort liegt somit eine Kopie des Wertes von
x
. Diesen Parameter holt die Funktion sin()
vom Stapel und verarbeitet ihn.
Ich nenne diesen Vorgang das Importieren eines Parameters.
Namen spielen dabei überhaupt keine Rolle. Es kommt ausschließlich auf die Position im Speicher bzw. auf dem Stapel an.
Die Anzahl an solchen Parametern kann der Programmierer der Funktion nach Belieben festlegen. Mehr als etwa fünf Parameter machen den Aufruf einer Funktion aber sehr unhandlich. Eine Funktion kann allerdings auch keinen Parameter importieren und nur etwas liefern oder beispielsweise einen konstanten Text ausgeben.
Die von uns bisher erstellte Funktion main()
importiert keinen Parameter und liefert am Ende
als Resultat einen Fehlercode. Es ist allerdings auch möglich, main()
Parameter importieren zu lassen.
Dies sollten wir allerdings erst dann tun, wenn Sie Datenfelder und nullterminierte Strings kennen.
Für eigene Notizen