[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