Creando una estructura global para múltiples archivos fuente

Tengo un archivo de encabezado común para varios archivos de origen en un proyecto de C. Quiero una cierta instancia de estructura:

typedef struct { char username[255]; char password[255]; } Configuration; Configuration config; 

Para estar disponible para todos los archivos de origen, y cualquier cambio que se le haga en cualquiera de los archivos de origen, debe afectar a todos los demás. ¿Cómo es esto posible?

En su archivo de cabecera declara la variable de configuración como extern:

 extern Configuration config; 

Y en uno, y solo en uno, el archivo fuente, define esa variable así:

 Configuration config;