Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 77<br />
Parameterdeklarations-LISTE (vereinfacht) <br />
Typ FormalerParameter [- , Typ FormalerParameter ]- 0..n<br />
FormalerParameter Bezeichner<br />
Der RückgabeTyp gibt den Typ des Rückgabewertes der Funktion an; entsprechend (6.21b)<br />
unterscheidet man zwei Arten von Funktionen:<br />
• Funktion mit Rückgabewert: ” normaler“ Rückgabetyp, der Funktionsname hat am Aufrufort<br />
den Typ und den zugehörigen Wert (letzteres: Haupteffekt des Funktionsausdrucks).<br />
• Funktion ohne Rückgabewert: Typ void.<br />
Bsp s. (7.13)<br />
Anm Die ZusammengesetzteAnweisung ist der Funktionsblock.<br />
↑↑ C △! In der Sprache C sollte eine Funktion ohne Parameter statt mit einer leeren Parameterliste<br />
mit dem Schlüsselwort void definiert werden, Näheres s. (7.23 Anm4).<br />
(b) Der Rücksprung aus der Funktion wird durch eine zusätzliche Anweisung bewirkt, durch<br />
eine 53 SprungAnweisung; sie kann an mehreren Stellen der Funktion auftreten:<br />
return Ausdruckopt ;<br />
Führt der Programmfluss auf eine return-Anweisung, wird die Funktion direkt verlassen:<br />
• Bei einer Funktion mit Rückgabewert darf der Ausdruck nicht fehlen. Er gibt nämlich<br />
den aktuellen Rückgabewert an.<br />
Anm Der Ausdruck wird aus Übersichtlichkeitsgründen häufig in ( ) gesetzt; dieses ist<br />
syntaktisch erlaubt, aber nicht notwendig.<br />
• Bei einer void-Funktion muss Ausdruck fehlen. In diesem Fall darf eine return-<br />
Anweisung am Ende der Funktion fehlen, da sie dann implizit durch den Compiler<br />
eingefügt wird.<br />
(7.12) Der Aufruf (d. h. die Benutzung) der Funktion geschieht durch einen Ausdruck:<br />
FunktionsaufrufAusdruck FunktionsBezeichner ( Parameter-LISTEopt )<br />
Parameter-LISTE AktuellerParameter [- , AktuellerParameter ]- 0..n<br />
AktuellerParameter Ausdruck<br />
Beim Aufruf einer Funktion springt der Kontrollfluss in die Funktion (und zwar zum Anfang<br />
des Funktionsblocks); er kehrt zum Aufrufort zurück, sobald er auf ein return oder auf das<br />
Ende des Funktionsblocks trifft.<br />
Der FunktionsaufrufAusdruck kann zwei Effekte haben, vgl. (3.31):<br />
• Seiteneffekt (immer vorhanden): Sprung in die Funktion, Ausführung des Codes,<br />
• Haupteffekt (Wert des Ausdrucks):<br />
◦ Haupteffekt ist vorhanden bei Funktion mit Rückgabewert, nämlich der Wert des<br />
Ausdrucks der return-Anweisung, mit der die Funktion verlassen wurde.<br />
◦ Haupteffekt ist nicht vorhanden bei Funktion ohne Rückgabewert, d. h. bei einer<br />
void-Funktion. Daher ist ein Funktionsaufruf ohne Rückgabewert nur dort erlaubt,<br />
wo der Ausdruckswert ignoriert wird, z. B. bei der Ausdrucksanweisung (3.32a).<br />
Korrespondenzprinzip bezüglich der Parameter-LISTE: Anzahl, Typ, Reihenfolge der aktuellen<br />
Parameter müssen zu den formalen Parametern passen – wenn nötig, nach impliziter<br />
Typanpassung.<br />
Bsp s. (7.13)<br />
(7.13) Der Kontrollfluss eines C ++/C-Programms beginnt immer am Anfang der main-Funktion.<br />
Bsp Beispielprogramm für Funktionsdefinition und Funktionsaufruf<br />
#include // Beispielprogramm D07-13.CPP<br />
using namespace std;<br />
int wertPlus1(int wert) // -- kürzer, aber gleichwertig: --<br />
{<br />
int ergebnis; // int wertPlus1(int wert)