¿Como crear una biblioteca en C?

1) Genera las funciones que te interesan y escríbelas todas juntas (código 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, guardarlo con extensión .h, por ejemplomilibreria.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 fácilmente 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 única vez, se puede guardar el fichero en la misma carpeta del código que queramos compilar. Dependiendo de este último 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 milibreria.h esté 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));
}





Nota: En el caso de que tengan por un lado las declaraciones de las funciones en un fichero .h, y por otro lado, un fichero .c con los cuerpos de las funciones, debe proceder del modo siguiente:


-Fichero milibreria.h:

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



-Fichero milibreria.c:

#include "milibreria.h"
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);
}


-Fichero del programa principal main.c:

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

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));
}

Comentarios

Entradas populares de este blog

Sacar los números primos de 1-100 en lenguaje C++

¿Que es un operador,y que tipo de operadores hay?

Cómo recorrer una matriz