viernes, 30 de noviembre de 2012

Manual para para crear tu propia biblioteca en C/C++

El siguiente manual va a tratar sobre cómo crear tu propia biblioteca en un compilador de C/C++. La biblioteca, o también mal conocida como librería (del ingles library) nos permite el uso de funciones en un programa sin la necesidad de escribir su código en nuestro programa, únicamente llamando a la biblioteca donde está contenida. Existen bibliotecas estándares en C que ya vienen incluida en la mayoría de los compiladores, como son stdio.h, math.h, time.h... 
Para utilizar nuestra biblioteca, únicamente basta con situar en la cabecera del programa el nombre de la biblioteca para poder utilizar todas las funciones contenidas en la misma.

A continuación se detallan los paso para la construcción de una biblioteca o librería:



MANUAL CREACIÓN BIBLIOTECA:

   1º) Genera las funciones que te interesan y escribelas todas juntas (codigo y cabeceras) en un mismo archivo de texto (Puedes usar el editor de texto del compilador, el bloc de notas, igual da...) tal y como se ilustra a continuación con un sencillo ejemplo:


int multiplica(int A, int B);
int suma(int A, int B);
int resta(int A, int B);


int multiplica(int A, int B)
{
    return(A*B);
}
int suma(int A, int B)
{
    return(A+B);
}
int resta(int A, int B)
{
    return(A-B);
}
 

 
   2º) El fichero creado anteriormente, guardalo con extension .h, por ejemplo milibreria.h (importante no ejecutarlo para que no le pueda cambiar sola la extensión). Se deberá guardar en la carpeta include del compilador. Esta carpeta se puede encontrar facilmente en la misma carpeta del compilador., accediendo a Mi PC (Equipo) y en la carpeta donde se guardan todos los programas.
Otra opción es que si solo se desea usar mibiblioteca.h una unica vez, se puede guardar el fichero en la misma carpeta del codigo que queramos compilar. Dependiendo de este ultimo paso tendremos...

   3º)Llamar a la biblioteca en el programa. Deberemos colocar en la cabecera del programa, junto a los llamamiento de otras bibliotecas:

#include <milibreria.h>  Cuando el fichero milibreria.h se encuentre en la carpeta include de nuestro compilador.

#include "milibreria.h"   Cuando el fichero milibreria.h esté en el mismo directorio que el archivo que queremos compilar.

   4º)Uso de las funciones de la biblioteca: Finalmente ya podemos usar las funciones de milibreria.h sin necesidad de copiar el codigo, tal y como ilustra el programa siguiente:

#include <stdio.h>
#include <milibreria.h>

int main(void)
{
    int X,Y;
    scanf("%d %d",&X,&Y);
    printf("X*Y=%d \n",multiplica(X,Y));
    printf("X+Y=%d \n",suma(X,Y));
    printf("X-Y=%d \n",resta(X,Y));
}




Y en el caso de que libreria.h este en la misma carpeta:

#include <stdio.h>
#include "milibreria.h"

int main(void)
{
    int X,Y;
    scanf("%d %d",&X,&Y);
    printf("X*Y=%d \n",multiplica(X,Y));
    printf("X+Y=%d \n",suma(X,Y));
    printf("X-Y=%d \n",resta(X,Y));
}


Cualquier duda pregunten. Espero que les haya servido este manual y creen ahora sus propias librerias.

12 comentarios:

  1. Hey muchas gracias por este aporte, me sirvió demasiado

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  6. Gracias por el aporte.

    ¿Realmente, se podría decir que la creación de librearías es como crear funciones que van a ser llamadas en el programa pero en vez de utilizar "main" o "void", creamos directamente la función en un archivo ".h", no?

    Tengo una pregunta, ¿Cómo se podría crear un fichero ".h" que funcionara de diccionario de sinónimos?. Quiero decir, por ejemplo: "No = Nunca = Jamás", ó, "No lo se = Tal vez = Quien sabe".

    Es para que al responder una pregunta el ordenador sea capaz de determinar si una respuesta es "si, no, o quizás", pero sin que la expresión a utilizar tenga que ser necesariamente "No, si o quizás".

    ¿También se podría crear a través de un fichero ".txt" y utilizando funciones de la librería ?

    Gracias de nuevo. Fisgonearé mas en tu blog, parece interesante.

    P.D.: Este es un libro que hay en wikilibros, a lo mejor puede resultar un tanto básico y no se si aportará, pero para mi que estoy comenzando con esto de la programación me está viniendo genial, lo dejo aquí el enlace por si a alguien le puede resultar interesante:

    http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C

    Si hay algún problema o infrinjo alguna norma no dudes en hacer lo que creas necesario.

    ResponderEliminar
    Respuestas
    1. Corrijo: "¿También se podría crear a través de un fichero ".txt" y utilizando funciones de la librería string.h?"

      Eliminar
    2. Hola Diego, lo primero de todo es darte la bienvenida al blog.
      Como tu has dicho, al fin y al cabo el llamar a una biblioteca o una función viene a ser lo mismo, con la diferencia de que la biblioteca se encuentra en otro fichero y las funciones deben estar en el mismo. Yo por lo general me decanto por el uso de funciones, ya que no suele haber muchas de éstas que uses en diferentes programas, por lo que tampoco me merece pasar por el "complicado" tramite de crearte una. Sin embargo, si en tu caso piensas que vas a necesitar ciertas funciones en un numero importante de programas, yo te animo a que te ordenes las funciones de esa manera por temáticas.
      En cuanto a lo del diccionario de sinónimos, lo más sencillo es guardarlo en un .txt. Por ejemplo, en cada línea, guardar la palabra primero, y luego sus sinónimos tal que:

      Sí/ Vale/ Me parece bien
      No/Nunca/Jamás
      Quizás/Tal vez/No lo sé
      ...

      Y para trabajr con ficheros de texto es suficiente con la biblioteca IO sino recuerdo mal.

      Un saludo, espero que te haya sido útil y gracias por tu aporte.

      Eliminar