Bisher haben wir nur auf Variablen innerhalb eines Blockes { } zugegriffen. Hat eine Funktion Werte benötigt, so wurden diese mit Parametern übergeben. Es ist aber auch möglich, von mehreren Blöcken aus ein und dieselbe Variable zu verändern. Solch eine Variable nennt man globale Variable. Folgendes Programm soll das Problem verdeutlichen, es funktioniert jedoch nicht, da die Variable counter nicht global ist.
#include<stdio.h> void zaehlen() { counter += 1; } int main() { int counter = 0; zaehlen(); printf("Zaehler: %d\n", counter); return 0; }
4: error: 'counter' undeclared (first use in this function)
Fehler in Zeile 4: Die Funktion zaehlen() kennt die Variable counter nicht, da counter im Block der Hauptfunktion deklariert ist und somit nur innerhalb der Hauptfunktion main() erreichbar ist.
Globale Variablen
Ist eine Variable global, so kann man von jedem Ort aus auf sie zugreifen. Eine Variable wird global, indem man sie nicht in einem Block, sondern außerhalb der Hauptfunktion deklariert.
#include<stdio.h> // globale Variable int counter = 0; void zaehlen() { counter += 1; } int main() { zaehlen(); printf("Zaehler: %d\n", counter); return 0; }
Zaehler: 1