07.11.2014 Aufrufe

Programmieren 3 Skript - Medieninformatik - Hochschule RheinMain

Programmieren 3 Skript - Medieninformatik - Hochschule RheinMain

Programmieren 3 Skript - Medieninformatik - Hochschule RheinMain

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Programmieren</strong> in C<br />

Funktionen<br />

Funktionsprototypen<br />

Problem – Benutzung vor Definition<br />

• Funktion wird verwendet, bevor sie definiert wurde<br />

• Andere Reihenfolge ist keine Lösung bei<br />

verschränkter Rekursion (odd, even)<br />

Lösung – Funktionsprototypen<br />

• Kopf der Funktion, Zeile 3<br />

• Ohne definierenden Block, mit Semikolon,<br />

Parameternamen dürfen fehlen<br />

• Funktion wird deklariert, noch nicht definiert<br />

• Angabe von extern davor erlaubt<br />

• extern int even(short int i);<br />

• Bekanntgabe des Rückgabewerts und des Typs des<br />

Parameters<br />

• Ohne Prototypen im Beispiel Übersetzungsfehler<br />

• Schlimmer wäre implizite Deklaration<br />

int even();<br />

1 #include <br />

2<br />

3 int even(short int i);<br />

4 int odd(short int i) {<br />

5 if (i == 0)<br />

6 return 0;<br />

7 return even(i-1);<br />

8 }<br />

9 int even(short int i) {<br />

10 if (i == 0)<br />

11 return 1;<br />

12 return odd(i-1);<br />

13 }<br />

14<br />

15 int main(void) {<br />

16 short int i = 17;<br />

17 printf("%d ist %s\n", i,<br />

18 odd(i) ? "odd" : "even");<br />

19 return 0;<br />

20 }<br />

Prof. Dr. Peter Barth (HS-<strong>RheinMain</strong>) <strong>Programmieren</strong> 3 29. Januar 2013 40 / 326

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!