9.7 Globale Variablen 

Globale Variablen können Sie sich als Vorwärtsdeklarationen von Funktionen vorstellen. Und wie der Name schon sagt, sind globale Variablen für alle Funktionen gültig. Hier ein Beispiel:
/* func5.c */ #include <stdio.h> int i=333; /* globale Variable */ void aendern(void) { i = 111; printf("In der Funktion aendern: %d\n",i); /* 111 */ } int main(void) { printf("%d\n",i); /* 333 */ aendern(); printf("%d\n",i); /* 111 */ return 0; }
Natürlich gilt auch hier die Regel, dass bei gleichnamigen Variablen die lokalste Variable den Zuschlag erhält. Beispiel:
/* func6.c */ #include <stdio.h> int i=333; /* globale Variable i */ void aendern(void) { i = 111; /* Ändert die globale Variable. */ printf("In der Funktion aendern: %d\n",i); /* 111 */ } int main(void) { int i = 444; printf("%d\n",i); /* 444 */ aendern(); printf("%d\n",i); /* 444 */ return 0; }
In diesem Beispiel nimmt die main()-Funktion wieder keine Notiz von der globalen Variablen i, da eine lokalere Variable mit demselben Namen vorhanden ist. Dabei können auch unangenehme Fehler auftreten, wenn Sie bei längeren Programmen zwei Variablen – eine globale und ein lokale – mit demselben Namen haben. Deshalb sollten Sie sich folgenden Satz zu Herzen nehmen:
Merke |
Für das Anlegen von Variablen gilt: »So lokal wie möglich und so global wie nötig.« |
Tipp |
Am besten fassen Sie die Definitionen von globalen Variablen in einer zentralen C-Datei zusammen (relativ zum Programm oder Modul) und verwenden externe Deklarationen in Headerdateien, die dann mit #include eingebunden werden, wo immer Sie die Deklarationen benötigen. Mehr dazu finden Sie in Kapitel 10, »Präprozessor-Direktiven«. |
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.