07.10.2013 Aufrufe

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

MEHR ANZEIGEN
WENIGER ANZEIGEN

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)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!