Verständnis schrieb:
> ist dies gleichbedeutend wie:
>
1 | > hallo=Zahl(nummer);
|
2 | >
|
> Also die ganze Schreibweise der Funktion durch den RETURN wert ersetzt
> wird?
Ich bin mit deiner Formulierung nicht glücklich.
Da wird nichts ersetzt.
In
ist die Reihnfolge der Eregnisse:
die rechte Seite der Zuweisung wird ausgewertet
Teil dieser Auswertung besteht darin, dass da ein Funktionsaufruf
vorkommt.
-> daher: die Funktion wir daufgerufen.
Während des Funktionsaufrufs, wird der Parameter 5 an die
Argumentvariable nummer innerhalb der Funktion gebunden
1 | uint8_t Zahl(uint8_t nummer)
|
2 | {
|
3 | return 2*nummer;
|
4 | }
|
während die Funktion also läuft, existiert innerhalb der Funktion eine
Variable namens 'nummer', die durch den Aufruf den Wert 5 erhalten hat.
Die Funktion macht nicht viel: sie liefert einfach nur den doppelten
Wert von nummer zurück. nummer, das war der WErt 5, die Funktion liefert
daher den Wert 10 zurück.
Damit ist die Funktion beendet und es geht wieder zurück zum Aufrufer
die Funktionsabarbeitung ist abgeschlossen, die Funktion hat den Wert 10
geliefert. Dieser Wert wird noch mit 3 multipliziert, ergibt somit 30
und damit steht das Endergebnis der rechten Seite der Zuweisung fest und
kann an die Variable hallo zugewiesen werden.
'hallo' hat also nach Abarbeitung dieser Anweisung den WErt 30.