Aparentemente hay mucha variedad de opiniones, desde "Nunca! Siempre encapsule (incluso si es con un simple macro!)" a "No es gran cosa: úselos cuando sea más conveniente que no "¿Cuándo está bien usar una variable global en C?
So.
, motivos concretos específicos (preferiblemente con un ejemplo)
- Por qué variables globales son peligrosos
- Cuando las variables globales deben pueden utilizar en lugar de alternativas
- ¿Qué alternativas existen para aquellos que son tentado de usar variables globales inapropiadamente
Si bien esto es subjetivo, escogeré una respuesta er (que para mí representa mejor la relación amor/odio que todo desarrollador debería tener con los globales) y la comunidad votará la suya justo debajo.
Creo que es importante que los novatos tengan este tipo de referencia, pero no la atempere si existe otra respuesta que sea sustancialmente similar a la suya: agregue un comentario o edite la respuesta de otra persona.
-Adán
Además, en el código de producción, es muy frustrante cuando su proyecto tiene que ser reentrante y/o seguro para subprocesos. Si alguien hereda su proyecto de 20,000 líneas en el futuro, imagínese lo divertido que será refacturarlo todo hasta el punto en que sea más eficiente volver a escribirlo desde cero. – DevNull