Hay una forma más limpia con un solo archivo de encabezado, por lo que es más fácil de mantener. En el encabezado con las variables globales, coloque el prefijo de cada declaración con una palabra clave (yo uso común) y luego, en un solo archivo fuente, inclúyalo así
#define common
#include "globals.h"
#undef common
y cualquier otro archivo fuente como este
#define common extern
#include "globals.h"
#undef common
Solo asegúrese de no inicializar ninguna de las variables en el archivo globals.h o el vinculador seguirá quejándose ya que una variable inicializada no se trata como externa incluso con la palabra clave extern. El archivo global.h se parece a esto
#pragma once
common int globala;
common int globalb;
etc.
parece funcionar para cualquier tipo de declaración. Por supuesto, no use la palabra clave común en #define.