C/Blocchi e funzioni/Librerie
Librerie
modificaNel Linguaggio C, come nella maggior parte dei linguaggi ad alto livello, esistono le librerie, che sono una collezione di funzioni precompilate che possono essere collegate al programma che si sta creando per sfruttarne le funzionalità.
Dichiarazione d'uso
modificaL'ambiente di sviluppo viene fornito con una serie di librerie standard, ma ogni utente può crearne una sua propria collezione che utilizzerà nei suoi programmi. Per collegare una libreria ad un programma bisogna specificare all'interno del codice il suo uso attraverso la clausola #include <nomelibreria.h>; quindi il file .h (da header, intestazione), file di testo che contiene le informazioni relative alle funzioni e alle variabili contenute nel codice oggetto, viene incluso assieme al sorgente nel file che viene fornito al compilatore.
Esempio:
#include <stdio.h> // include la libreria stdio.h, responsabile della gestione dell'I/O
#include <stdlib.h> // include la libreria stdlib.h, responsabile di operazioni miscellanee
#include <SDL2.h> // include la libreria SDL2.h, non standard
int main()
{
// ...
if(!SDL_Init(SDL_INIT_VIDEO)) { // SDL2.h
printf("Errore\n"); // stdio.h
exit(EXIT_FAILURE) // stdlib.h
}
}
Collegamento di una libreria
modificaDurante la compilazione, il codice oggetto della libreria viene collegato al codice oggetto del programma utente, e le funzioni di libreria rese così accessibili da questo.
Nel Linguaggio C, il tipo stringa non è definito, ma è stata creata una libreria che lo implementa; questa viene collegata tramite lo header string.h. Altre librerie sono math.h, stdio.h. Le parentesi angolari servono per far ricercare la libreria nella directory standard; per cercare in percorsi diversi bisogna fornire il percorso completo anteposto al nome della libreria, senza parentesi angolari (per esempio "c:\linguaggio_C\mielib\mialibreria.h").
Dopo aver incluso una libreria bisogna necessariamente istruire il linker su dove trovare l'implementazione. Se la libreria è standard il linker lo cercherà automaticamente, altrimenti dobbiamo istruirlo. Per esempio, usando il compilatore GCC, dopo aver incluso la libreria "SDL2", quando avviamo il compilatore da riga di comando scriveremo gcc main.c -o mioprogramma -lSDL2
. È comunque necessario istruire il linker su quale directory deve lanciarsi a cercare la libreria voluta. Nei sistemi *NIX (Apple o Linux) di default tutte le librerie utente si trovano in /usr/lib, su Windows non è così semplice.
Dato che l'argomento librerie è piuttosto complesso è meglio che il lettore cerchi nel manuale del proprio compilatore.