Es bien conocida la mala práctica de tener un "super encabezado de archivo" como "globals.h" o "incluye.h", etc, porque además de las variables globales de ser mal en el primer lugar, esto también crea un estrecho vínculo de dependencia entre cada sola, no relacionadas archivo en el proyecto.
Digamos que usted tiene un PWM controlador y una interfaz RS-232 depuración del módulo de impresión. Usted desea tomar el RS-232 depuración del módulo de impresión y volver a utilizarla en otro proyecto. De repente se encuentra con la necesidad de algunos PWM.h que no tiene una idea acerca de lo que es o donde la necesidad viene. Estarás preguntando por qué en la tierra que necesita un PWM controlador para ejecutar la interfaz RS-232.
Y, a continuación, aún no hemos considerado re-entrancy de este sucio global de la estructura. No permite hacer eso.
La manera correcta para desenredar global espaguetis preferiría ser algo como esto:
- Es la variable que se utiliza en el primer lugar? Si no, quitar. (Esto es bastante común)
- Puede que la variable sea trasladado a un ámbito local dentro de una función?
- Puede que la variable se trasladó al local
.c
ámbito de los archivos por lo que es static
? Se puede reducir el acceso a él desde fuera de la .c
archivo por la aplicación de setter/getter funciones?
Si todo lo anterior falla, entonces la variable que se encuentre a su alrededor debe ser una memoria de hardware asignado registrar parte de un registro de mapa, o es algo de tiempo real crítico sucio revisión que se ha añadido durante el mantenimiento.