Variablen werden nur dann in Headerdateien überhaupt erwähnt, wenn sie
aus mehreren Quelltextdateien (*.c) heraus verwendet werden sollen.
So etwas nennt man globale Variable.
Diese werden in der Headerdatei deklariert (mit dem Schlüsselwort
"extern") und in einer Quelltextdatei des Gesamtprojektes definiert.
Die Deklaration einer Variablen sagt dem Compiler, daß es irgendwo
eine Variable des angegebenen Namens und Typs gibt.
Die Definition einer Variablen legt zusätzlich den Speicherort fest.
Bei Variablen, die nur innerhalb einer Quelltextdatei verwendet werden
sollen, gehört die Definition in genau diese Quelltextdatei, eine
Deklaration mit "extern" entfällt hier.
Um sicherzustellen, daß auf diese Variable nicht doch versehentlich aus
anderen Quelltextdateien zugegriffen werden kann, kann so eine Variable
als "static" definiert werden.
So etwas nennt man modulglobale Variable. Diese Variable ist weiterhin
global, denn sie ist für alle Funktionen im gleichen Modul sichtbar.
Eine lokale Variable hingegen ist eine innerhalb einer Funktion
definierte Variable, auf diese kann auch nur innerhalb der Funktion
zugegriffen werden -- das hier auch zulässige Schlüsselwort "static" hat
hier eine ganz andere Bedeutung, nämlich daß die Variable zwischen zwei
Funktionsaufrufen ihren Wert behält.