9.15 Der Rückgabewert von Funktionen 

Jetzt haben Sie gesehen, wie es möglich ist, Daten an eine Funktion zu übergeben. Nun wollen Sie natürlich noch wissen, wie eine Funktion so geschrieben wird, dass sie Daten an den Aufrufer zurückgibt.
Zunächst benötigen Sie eine Funktionsdefinition mit einem Rückgabewert. Als Rückgabewert können Sie jeden beliebigen Datentyp verwenden, zum Beispiel:
int bignum(int a, int b) { if(a > b) return a; else if(a < b) return b; else return 0; /* Beide Zahlen gleich groß. */ }
Sie erkennen an dieser Funktion durch das Voranstellen des Datentyps, dass hier der Rückgabewert ein Integer ist. Und in der Funktion selbst wird mit der Anweisung
return WERT;
ein Wert an die aufrufende Funktion zurückgeliefert. Diese return-Anweisung dient aber nicht nur dazu, der aufrufenden Funktion einen Wert zurückzuliefern, sondern setzt zugleich das Ende einer Funktion fest. Bei return wird also die Kontrolle an die aufrufende Funktion zurückgegeben. Dabei kann ein Wert zurückgegeben werden. Jetzt wird noch der Aufrufer selbst mit seinen Argumenten benötigt:
int big; ... big = bignum(wert1, wert2);
Damit wird der Variablen big, die zwingend vom Datentyp int sein muss, der Rückgabewert der Funktion bignum() zugewiesen. Das vollständige Programm sähe dann folgendermaßen aus:
/* bignum.c */ #include <stdio.h> int bignum(int a, int b) { if(a > b) return a; else if(a < b) return b; else return 0; /* Beide Zahlen sind gleich groß. */ } int main(void) { int wert1, wert2, big; printf("Bitte einen Wert eingeben: "); scanf("%d",&wert1); printf("Bitte noch einen Wert eingeben: "); scanf("%d",&wert2); big = bignum(wert1, wert2); if(big != 0) printf("%d ist die größere der beiden Zahlen\n",big); else printf("Beide Zahlen haben denselben Wert\n"); return 0; }
Im weiteren Verlauf werden Sie einige Möglichkeiten von Funktionen mit verschiedensten Rückgabewerten kennenlernen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.