9.13 Datenaustausch zwischen Funktionen 

Für den Austausch von Daten kennen Sie bisher nur die Möglichkeit, globale Variablen zu verwenden. Eine globale Variable ist jeweils eine gemeinsame Variable für alle Funktionen:
/* func8.c */ #include <stdio.h> static int zahl; void verdoppeln(void); void halbieren(void); void verdoppeln(void) { zahl *= 2; printf("Verdoppelt: %d\n", zahl); } void halbieren(void) { zahl /= 2; printf("Halbiert: %d\n", zahl); } int main(void) { int wahl; printf("Bitte geben Sie eine Zahl ein: "); scanf("%d",&zahl); printf("Wollen Sie diese Zahl\n"); printf("\t1.)verdoppeln\n\t2.)halbieren\n\nIhre Wahl: "); scanf("%d",&wahl); switch(wahl) { case 1 : verdoppeln(); break; case 2 : halbieren(); break; default : printf("Unbekannte Eingabe\n"); } return 0; }
Dieses Programm weist keinerlei Fehler auf. Nur wirkt es etwas störend, dass eine globale Variable für alle Funktionen verwendet wurde. Zum einen wissen Sie, dass es besser wäre, die Variable lokal zu halten. Zum anderen kann das Programm auf diese Art schnell unübersichtlich werden. Als Beispiel dient hier ein Programm, das sich über mehrere Dateien verteilt, bei dem Sie auf folgende Funktion stoßen:
void berechnung(void) { V = l * b * h / 4; x = V * V; }
Es erscheint alles eindeutig, nicht wahr? Natürlich ist es das nicht, denn es lässt sich anhand dieser Berechnung überhaupt nicht erkennen, um welchen Datentyp es sich handelt. Um also den Datentyp zu ermitteln, müssen Sie nach seiner Deklaration suchen.
Einfach ausgedrückt heißt das, dass Sie eine Funktion so programmieren müssen, dass diese auch für eine allgemeine Verwendung ausgelegt ist. Dafür gibt es in der Regel zwei Möglichkeiten, die Sie am besten auch beide nutzen.
- Funktionen mit Wertübergabe (Parameter)
- Funktionen mit Wertrückgabe
Mit der Wertübergabe durch Parameter übergeben Sie einer Funktion Daten (Datenfluss in die Funktion hinein), und mit der Wertrückgabe geben Sie Daten aus einer Funktion heraus (Datenfluss aus der Funktion heraus). Die Funktion arbeitet somit als eine Art Schnittstelle.
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.