C/Visual C - Demasiadas variables globales

 
Vista:

Demasiadas variables globales

Publicado por Fernando (8 intervenciones) el 04/06/2003 21:36:56
Hola,

Estoy desarrollando un programita (ojo unas 3000 lineas de código) en C bajo Windows (16 bits) que utiliza muchos recursos de memoria. Intento que la mayoria de las variables se mantengan en memoria solo cuando es necesario y luego son destruidas.

Cuando compilo con el modelo Small me lanza el error de segmento (imagino por los benditos 64K). Ahora, cuando compilo con el modelo Large el error que ocurre es, textualmente "too much global defined in file function main" (demasiadas variables globales en main).

Me parece algo raro este error... Alguien me puede ayudar???

Muchas gracias...

Fernando.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Demasiadas variables globales

Publicado por abi (54 intervenciones) el 04/06/2003 23:10:09
Hola! Si declaras muchas variables globales dentro del main, el compilador lo que va a hacer es al principio antes de correr tu programa va a reservar un espacio en memoria para cada variable global, auqne después las borres y liberes la memoria al inicio siempre reserva el espacio porque mejor no intentas usar funciones y asi tendrías menos variables globales. Porque a mi me han insistido mucho en que no use variables globales que es mucho desperdicio de memoria, que solo use varias locales (las que declaro en la funcion).
Yo te recomendaria que mejor uses funciones, porque también me han dicho que es mejor tener en el main lo menos posible, que casi todo sea a base de funciones
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Demasiadas variables globales

Publicado por Oliver++ (339 intervenciones) el 05/06/2003 17:08:12
partiendo del hecho de que es estrictamente necesario usar variables globales en tu programa, opino lo siguente:

en vez de declarar las variables estáticas en main, declara punteros a éstas y cuando las necesites reserva memoria dinámica para ellas usando los punteros antes declarados para referenciar a ellas. si es posible utiliza punteros short para mas ahorro. Trata de usar uniones y campos de bits.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Demasiadas variables globales

Publicado por Fernando (8 intervenciones) el 05/06/2003 21:50:07
Hola,

Ante todo, gracias por contestar.

Si bien tengo bastante distribuida mi aplicación en funciones, hay dos estructuras (una de ellas es la "critica" en tamaño) que deben coexistir y son las causantes de mi problema. Ahora, no es main la función con demasiadas variables globales y si una función local (a donde tranferí dicho tratamiento).

Tampoco puedo jugar con el tamaño de las mismas, pues se cargan luego de "levantar" info desde un archivo. ESTO ES LO QUE ME RESULTA EXTRAÑO, pues ni siquiera me compila...

La verdad, se me quemaron los papeles...

Saludos.

Fernando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar