[C con Clase] Dos fuentes con las mismas variables

Samuel Díaz García samueldg en arcoscom.com
Jue Mar 8 11:03:04 CET 2007


Si el problema es que son variables globales a todo el fuente, quizás (no
se si esto que voy a decir es específico de C++) declarando las variables
en sus propios fuentes como "static" pueda ayudarte.

Según recuerdo, haciendo esto el ámbito de las variables globales se
reduce solo al propio fuente, de esta forma si dichas variables globales
no son necesarias fuera de dichos fuentes, pues tienes ahí la solución.

Ya nos dices si eso te vale.

Si no te vale, pues no te quedará más remedio que cambiar el nombre en los
fuentes.

Yo, para estas cosas, lo que normalmente hago es en C, definirme una
estructura que me contiene las variables globales que voy a necesitar en
toda la aplicación, de forma que cada aplicación tiene su propia
estructura de variables globales. Por ejemplo:

en "programa_globales.h":

#ifndef _<programa>_GLOBALES_H_
#define _<programa>_GLOBALES_H_
typedef struct <programa>_globals_struct {
   ...
} T<programa>Globales;

extern T<programa>Globales vg<programa>;

#endif

en "programa_globales.c":

#include "<programa>_globales.h"

T<programa>Globales vg<programa>;

Salu2

-- 
Samuel Díaz García
ArcosCom Wireless, S.L.L.

CIF: B11828068
c/ Romero Gago, 19
Arcos de la Frontera
11630 - Cadiz

http://www.arcoscom.com

mailto:samueldg en arcoscom.com
msn: samueldg en arcoscom.com

Tlfn.: 956 70 13 15
Fax:   956 70 34 83


El Jue, 8 de Marzo de 2007, 10:04, Jandro escribió:
> No, las fuentes son de C :(
>
> Y ademas son programas ya escritos muy largos, que seria bastante
> complicao de modificarlo, es la unica solucion que se te ocurre?
>
> Muchisimas gracias.
> Saludos.
>
>
> El 07/03/2007, a las 19:01, Steven Davidson escribió:
>
>> Hola Jandro,
>>
>> El pasado 2007-03-07 17:26:44, Jandro escribió:
>>
>> J> Hola a todos.
>> J> Tengo dos codigos fuentes de libre distribucion que usan algunas
>> J> variables con los mismos nombres, necesitos unir esas dos
>> fuentes en
>> J> una mismo programa, llamando primero a uno y despues a otro.
>> J> El problema es que al tener las variables los mismos nombres, no me
>> J> funciona bien y se hace un lio.
>> J> Como puedo solucionarlo??
>>
>> Bajo C++, puedes usar espacios con nombre (namespaces, en inglés)
>> para solucionar este tipo de problemas. Por ejemplo,
>>
>> namespace dist1
>> {
>>
>> #include "dist1.h"
>>
>> }
>>
>> namespace dist2
>> {
>>
>> #include "dist2.h"
>>
>> }
>>
>> Ahora puedes usar las entidades bajo un ámbito u otro. Por ejemplo,
>>
>> int main()
>> {
>>   std::cout << dist1::func( 10 ) + dist2::func( -10 );
>>   ...
>> }
>>
>>
>> Espero que esto te ayude.
>>
>> Steven
>> _______________________________________________
>> Lista de correo Cconclase Cconclase en listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/
>> cconclase_listas.conclase.net
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>






Más información sobre la lista de distribución Cconclase