Das extern sagt dem Compiler, dass es sich hierbei nur um eine Deklaration handelt. Denn ansonsten wäre der Syntax für Deklaration und Definition einer gloaben Variable der gleiche.

Sobald du eine globale Variable in mehr als einem .c File verwenden willst, musst du die Variable mit extern im .h File Deklarieren und in EINEM C-file definieren.

Verwendest du die globale Variable aber nur innerhalb einer .c-Datei, dann brauchst du in dem Header File gar nichts machen. Dann reicht die globale Definition in dem C-File in dem du die Variable verwenden willst. Natürlich muss die Definition der Variable in dem C-File dann vor der ersten Verwendung erfolgen

Ich hoffe ich habe dich jetzt nicht ganz verwirrt?