[C con Clase] Programación modular.

Jorge Vega Sanchez memmaker650 en gmail.com
Vie Mayo 21 11:47:45 CEST 2010


Oye he estado mirnado el ejemplo que me pusiste y o soy muy estupido o  
lo intento aplicar en una aplicación mia y me dice que redefino  
variables.

No entiendo nada.

On 19/05/2010, at 9:04, Steven Davidson wrote:

> Hola Jorge,
>
> 2010/5/18 Jorge Vega Sanchez <memmaker650 en gmail.com>
> Buenas
>
> Llevo unos días trabajando con un programa  que ya funciona y estoy  
> probando a distribuirlo en varios ficheros porque veo el código muy  
> desordenado. Quiero distribuir el código en varios ficheros para  
> tenerlo más ordenado y que sea más fácil ampliar el código y que sea  
> legible. El problema viene en que ando muy perdido en esto porque no  
> encuentro documentación y estoy probando alguna cosa que he visto  
> pero no cumple todo lo que quiero. Y no sé como enlazarlo todo.
>
> Mi programa tiene: variables globales, 4 procediemientos generales y  
> 2 procedimientos de control y un programa principal.
>
> Me gustaría dividirlo en uno/dos ficheros de cabecera y 3 ficheros  
> fuente. 1 donde este el main, otro donde esten los procedimientos de  
> control y otro donde estén los procedimientos generales. En la  
> cabecera incluyo una librería externa.
>
>
>
>
> Sin conocer los detalles ni el problema exacto, no podemos ser muy  
> precisos en nuestra respuesta. Aparte de la ordenación del código,  
> la separación del código en diferentes ficheros ofrece también una  
> oportunidad para agrupar y relacionar el código lógicamente.
>
> A mi parecer, el mayor problema que puedas tener es con las  
> variables globales. Defínelas en un fichero fuente, pero decláralas  
> en los demás donde las vayas a usar. Esto implica que deberás usar  
> 'extern' a la hora de declarar las variables globales que necesitas,  
> pero sin (re)definirlas. Por ejemplo,
>
> // codigo01.h
>
> extern int g_num;
> extern float g_real;
>
>
> // codigo01.cpp
>
> int g_num = 10;
> float g_real = -.5009;
>
>
> // codigo02.h
>
> #include "codigo01.h"
>
> struct punto4d { double x,y,z,w; };
>
> extern punto4d g_origen;
>
>
> // codigo02.cpp
>
> punto4d g_origen = { 0.0, 0.0, 0.0, 1.0 };
>
>
> // main.cpp
>
> #include "codigo01.h"
> #include "codigo02.h"
>
> int main()
> {
>   punto4d p;
>
>   p.x = g_origen.x * g_num + g_real;
>   p.y = g_origen.x * g_num + g_real;
>   p.z = g_origen.x * g_num + g_real;
>   p.w = g_origen.x;
>   ...
>   return 0;
> }
>
>
>
> Espero que esto te oriente.
>
> 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

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


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