11.7 Globale Variablen
 
Globale Variablen können Sie sich als Vorwärtsdeklarationen von Funktionen vorstellen. Und wie der Name schon sagt, globale Variablen sind 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 Header-Dateien, die dann mit #include eingebunden werden, wo immer Sie die Deklarationen benötigen. (Mehr dazu in Kapitel 12, Präprozessor-Direktiven.)
|
|