Declarar, inicializar y usar una variable global en el mismo archivo de encabezado

En realidad, estoy tratando de usar una variable que se inicializa en un archivo de encabezado (por ejemplo, xh) y quiero usar la misma variable dentro del código en línea en el mismo archivo de encabezado. La misma variable se modifica en otro archivo (por ejemplo, yc). Cómo puedo hacer esto ? Me gustaría saber una buena manera de hacer esto.

Puede declarar la variable global en el archivo de encabezado como extern y luego definirla dentro de un módulo de código (es decir, el archivo “.c”). De esa manera, no terminará con los errores de definición múltiples lanzados por el enlazador.

Así, por ejemplo, en su archivo de cabecera, un int disponible globalmente llamado my_global_var tendría una statement en un archivo .h que tiene el siguiente aspecto:

 extern int my_global_var; 

Luego, dentro de un único archivo .c en algún lugar, lo definiría e inicializaría:

 int my_global_var = 0; 

Ahora puede usar my_global_var en cualquier otro módulo de código que incluya el archivo de encabezado apropiado y enlaces con el archivo .c adecuado que contiene la definición de la variable global.

Usando la palabra reservada extern .

Nunca cree variables en archivos ‘.h’, es una mala práctica que conduce a errores. En su lugar, declararlos como extern cualquier lugar donde los necesite y declare la variable solo en un solo archivo ‘.c’ donde se creará una instancia y se vinculará desde todos los demás lugares donde lo use.