Hallo Gerhard,
wie Dirk geschrieben hat: "extern" sagt dem Compiler: "Es gibt irgendwo anders eine entsprechende Variablendefinition". Wobei "irgendwo" in dem Kontext letztendlich eine C-Datei sein muss. Letztendlich, weil die entsprechende Quelltextzeile auch in einem via #include eingebundenen Header stehen könnte, in der Regel ist das aber nicht gewollt.
Das ist übrigens der Unterschied zwischen Deklaration ("Es gibt ...") und Definition ("Hier gibt es ..."), eine beliebte Ursache für Verwirrungen. Erst bei der Definition reserviert der Compiler Platz für die Variable, Deklarationen sind erst Mal nur Namen die später in die Speicherstelle umgesetzt werden. Und mit "extern" erfolgt eine solche Deklaration.
mfG
Markus
Lesezeichen