Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Shon en 11 Septiembre 2010, 13:03 pm



Título: Variables globales en programas modulares
Publicado por: Shon en 11 Septiembre 2010, 13:03 pm
Hola a tod@s

Curioseando en el código de algunas aplicaciones de fuente abierta, he visto que el main.c se usa mucho declarar variables globales, hasta el punto de haber 40 o 50 o incluso más. Supongo que esto lo hacen para poder compartirlas entre varios modulos haciéndolas accesibles con extern.

Mi duda es:

En cuánto a eficiencia del programa y al buen estilo que se debe seguir para programar... ¿Es conveniente usar tantas variables globales? O por el contrario ¿Es mejor usar más el paso de variables locales como parámetros de funciones?

Agradecería cualquier opinión al respecto, ya que tengo que programar una aplicación de sockets, y tendre unos 5 o 6 ficheros con código, en el que tengo que compartir descriptores, estructuras y cosas así, y  no sé muy bien como estructurar la aplicación en cuanto a este tema.

Gracias de antemano.

Un saludo


Título: Re: Variables globales en programas modulares
Publicado por: Horricreu en 11 Septiembre 2010, 16:02 pm
Las variables globales no son recomendables para nada ya que tienen una legibilidad menor, condiciona en muchos casos que el programa sólo sirva para un conjunto de casos determinados, el uso indiscriminado de variables globales produce efectos colaterales y atenta contra uno de los principios de la programación, la programación modular.

Saludos :P


Título: Re: Variables globales en programas modulares
Publicado por: Shon en 11 Septiembre 2010, 18:59 pm
Vaya!! Pues uno de los programas a los que me refiero es hping3:
http://www.hping.org/

Que tiene la reostia de variables globales xD

Puede haber algún motivo en el que no haya más remedio que tener que tirar de variables globales?

No me mal interpretes, no es que no me crea que no son recomendables para nada, es que me parece bastante raro, que el programador de esa aplicación haya hecho una chapuza tan grande jeje

un saludo


Título: Re: Variables globales en programas modulares
Publicado por: Horricreu en 11 Septiembre 2010, 19:33 pm
Es una mala costumbre. Por ejemplo, en casi todos los libros antiguos y alguno nuevo de C/C++ empiezan con los programas con main() en vez de int main() y cosas por el estilo... los vicios se tienen que corregir si no a la larga te encontrarás muchos problemas.

Saludos :P