La verdad he estado un poco ocupado entre horas, pero lo que he acabado haciendo ha sido distribuir las macros entre los distintos headers para que así no haya macros en códigos que no se vayan a utilizar, lo malo que para cambiarlas tengo que ir de cabecera en cabecera.
Me he dado cuenta que extern no vale para nada:
extern int casa = 5;
Pues es lo mismo que decir
int casa = 5;
Y declararla como global en una cabecera, para usarla debes incluir su cabecera en el código, luego es lo mismo, que no poner extern, luego es useless.
Entonces las variables globales que si use en varios archivos tengo 2 opciones o copiarlas para cada header, o crear un header y añadir el header a los headers.
Ahora que lo pienso seguramente usando las directivas de preprocesador quizás podamos hacer que se añadan las que queramos dependiendo del header a las que las estemos añadiendo, es decir crear un header con variables globales compartidas:
header_global.h
Y en los headers que añadiría header_global.h, pondría #define CASAS si quiero añadir casa y casita, y no poner nada si quiero añadir las demás por poner un ejemplo, aunque no se si valdrá para declarar variables globales en plan "const int casa", o solo macros con #define, que seguramente sea solo lo segundo, pero es algo que mejora la calidad del código en mi opinión hacerlo así.
Gracias y un saludo.
Me he dado cuenta que extern no vale para nada:
extern int casa = 5;
Pues es lo mismo que decir
int casa = 5;
Y declararla como global en una cabecera, para usarla debes incluir su cabecera en el código, luego es lo mismo, que no poner extern, luego es useless.
Entonces las variables globales que si use en varios archivos tengo 2 opciones o copiarlas para cada header, o crear un header y añadir el header a los headers.
Ahora que lo pienso seguramente usando las directivas de preprocesador quizás podamos hacer que se añadan las que queramos dependiendo del header a las que las estemos añadiendo, es decir crear un header con variables globales compartidas:
header_global.h
Código (cpp) [Seleccionar]
#ifdef CASAS
#define casa;
int const casita;
#else
...
Y en los headers que añadiría header_global.h, pondría #define CASAS si quiero añadir casa y casita, y no poner nada si quiero añadir las demás por poner un ejemplo, aunque no se si valdrá para declarar variables globales en plan "const int casa", o solo macros con #define, que seguramente sea solo lo segundo, pero es algo que mejora la calidad del código en mi opinión hacerlo así.
Gracias y un saludo.