Jest bardziej przejrzysty sposób z tylko jednym plikiem nagłówkowym, więc jest łatwiejszy w utrzymaniu. W nagłówku ze zmiennymi globalnymi poprzedzaj każdą deklarację słowem kluczowym (używam wspólnego), a następnie w jednym pliku źródłowym umieść to w ten sposób
#define common
#include "globals.h"
#undef common
i wszelkie inne pliki źródłowe, takie jak ten
#define common extern
#include "globals.h"
#undef common
Po prostu upewnij się, że nie zainicjowałeś żadnej ze zmiennych w pliku globals.h, w przeciwnym razie konsolidator nadal będzie narzekał, ponieważ zainicjowana zmienna nie jest traktowana jako zewnętrzna, nawet przy użyciu słowa kluczowego extern. Plik global.h wygląda podobnie do tego
#pragma once
common int globala;
common int globalb;
etc.
wydaje się działać dla każdego typu deklaracji. Oczywiście nie używaj wspólnego słowa kluczowego na #define.