¿Estas aprendiendo a programar? o ¿ya te cansaste de tener mas de 1000 líneas de código en tu archivo principal a pesar de modularizar? Pues creo que lo que sigue es tu solución (igual y no).

En la clase de compiladores estoy aprendiendo muchas cosas que me hubieran facilitado muchas cosas en mis cursos anteriores de programación (usando C), por desgracia ahora me doy cuenta de muchas cosas que hice mal, pero tampoco los maestros que tuve me ayudaron respecto a como estructurar un programa, eso me motiva a escribir esto (en su momento no lo encontré).

Para empezar cualquier programa (inclúyase proyecto) donde se necesiten usar estructuras de datos (esto incluye TDA’s) o que su complejidad es lo suficiente para modularizar se necesitan tres archivos:

  • estructura.h: Este tendrá las definiciones de estructuras de datos, definiciones de constantes, variables globales y/o inclusiones de otras librerías para el programa. Si deseas crear un TDA en este archivo pondrás la definición del TDA, los prototipos de funciones y/o procedimientos.
  • estructura.c: Contiene el código funcional sobre las estructuras de datos (o TDA’s).
  • programa.c: Este es el programa que usa lo anterior (podría ser el main, por ejemplo).

¿Y cómo interactúan (o hacerlos interactuar) todos estos archivos? Cuando descargaba programas para compilar (de gente profesional) según yo para aprender, pero nunca entendí por qué había muchos archivos .c, con esto he comprendido el por qué de esto. Para empezar esto es una práctica de programación (ya explicada es bastante intuitivo) y que obliga a uno a conocer algo mas del desarrollo de programas, lo que necesitas saber es que lo que se usa para poder manejar estos archivos se llama “Proyectos”, que empaqueta todo el código y genera un ejecutable (no sé si puedes crear varios ejecutables) en el que tiene las funcionalidades de todo el código, para no aburrirlos (espero hayan llegado hasta aquí) voy a hacer un ejemplo de juguete:

  • estructura.h

/* Librerías que necesites */

#include <stdio.h>

#include <stdlib.h>

 

/* Estructura */

struct _prueba {

int valor;

};

 

typedef struct _prueba prueba;

 

void inicia(prueba* pru);

int getvalor(prueba pru);

int setvalor(prueba* pru,int numero);

  • estructura.c

/* Es necesario porque esta la definición de la estructura, pero también pueden tener variables globales o definiciones */

#include “estructura.h”

 

void inicia(prueba* pru) {

pru->valor = 0;

}

 

int getvalor(prueba pru) {

return(pru.valor);

}

 

int setvalor(prueba* pru,int numero) {

pru->valor = numero;

}

  • programa.c

/* Es necesario porque esta la definición de la estructura, pero también pueden tener variables globales o definiciones */

#include “estructura.h”

int main(int argc, char *argv[]) {

int val;

prueba nuevo;

inicia(&nuevo);

printf(“¿Qué valor deseas guardar: “);

scanf(“%d”,&val);

setvalor(&nuevo,val);

printf(“El valor guardado es %d\n\n”,getvalor(nuevo));

system(“PAUSE”);

return 0;

}

Observaciones: Al incluir la librería de definición de la estructura (esctructura.h) se asocian las funciones respecto a la estructura en programa.c (compilando el proyecto).

Para manejar un proyecto necesitas un IDE (creo que con el puro compilador también se puede hacer esto) y solo busca proyecto. En Dev-Cpp se encuentra en ‘Archivo-Nuevo-Proyecto’ y te pide el nombre (de este depende el nombre del ejecutable) y la carpeta donde estará el proyecto, después puedes agregar archivos (‘Proyecto-Agregar archivo’) o crear nuevos (‘Proyecto-Crear archivo’). En Turbo C++ 3.1 se encuentra esa opción en la barra de tareas (‘Project’ del lado derecho de ‘Compile’) y puedes tener la misma funcionalidad.

Para mejorar esto necesitas conocer acerca de compilación condicional para no tener problemas a la hora de compilar, esto es para no redefinir cosas en las inclusiones, pero esto será para después (pronto, ahora si lo pondre).

Anuncios