[C con Clase] Cuestión sobre ficheros de cabecera y demás.

Steven Davidson srd4121 en njit.edu
Sab Ene 9 13:13:46 CET 2010


Hola Jorge,

2010/1/9 Jorge Vega Sanchez <memmaker650 en gmail.com>

> Buenas
> Es una duda un poco para poner el código más legible y tener separada las
> funciones del main.
> Tengo un programita sencillo donde trabajo con un par de hilos. Tengo un
> fichero de cabecera donde tengo definido las funciones para sincronizar
> hilos.
> En las funciones y procedimeintos que ejecutan los hilos uso variables
> globales y me gustaría saber si las puedo poner en otro fichero.
> He probado a ponerlas en otro fichero de cabecera pero me da error todas
> las variables globales.


Recuerda que C/C++ siguen la Regla de una Sola Definición (ODR, en inglés).
Es decir, sólo puedes definir una variable una sola vez. Lo que sí puedes
hacer es declarar tantas veces como necesites. Ésta es la solución. Por
ejemplo,

// principal.cpp

int nCont = 10;  // Definición
...

 // cab1.h
 extern int nCont;  // Declaración
...

 // cab2.h
 extern int nCont;  // Declaración
...

 // cab3.h
 extern int nCont;  // Declaración
...

Como puedes ver, declaramos 'nCont' varias veces, pero sólo la definimos una
vez, en "principal.cpp", que es cuando se reserva memoria para ella y cuando
realmente comienza a "existir".


Espero haber aclarado la duda.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100109/de735e2c/attachment.html>


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