zurück weiter

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.

 

Wie bekommt eine Funktion die Werte, die sie verarbeiten soll?

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.

Wieviele Parameter kann eine Funktion importieren?

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.

Zusammenfassung der bisherigen Erklärungen

 

Für eigene Notizen