Angenommen, ein Projekt besteht aus 10 Headerdateien + Quelldateien.
Wenn jetzt jede der 10 Header die selbe Variable verwendet müsste man in der 1. Includierten Headerdatei die Variable definieren um sie überall zur verfügung zu haben. Angenommen aus irgendeinem Grund wird diese Reihenfolge geändert (einer der Header wird vorher schonmal eingebunden [...] ) kann diese Datei nicht mehr auf die globale Variable zugreifen. Eine neue definition würde zu Fehlern führen, da die Variable später erneut definiert wird.
Indem jede Datei die die globale Variablen verwendet eine 'extern' deklaration beinhaltet ist es egal, welche der 10 Header die definition beinhaltet.
Was es helfen soll, Variablen woanders zu verwenden? -> GameState sollte man überall verwenden können