Header file

Da Wikipedia, l'enciclopedia libera.

Un header file (o file di intestazione) è un file che aiuta il programmatore nell'utilizzo di librerie durante la programmazione. Un header file del linguaggio ANSI C è un semplice file di testo che contiene i prototipi delle funzioni definite nel relativo file .c. I prototipi permettono al compilatore di produrre un codice oggetto che può essere facilmente unito (detto volgarmente "linkato") con quello della libreria in futuro, anche senza avere la libreria sottomano al momento.

Struttura[modifica | modifica sorgente]

Un header file può contenere un qualsiasi numero di definizioni di costanti e prototipi di funzione. Teoricamente, potrebbe anche contenere le definizioni delle funzioni, anche se ciò sarebbe contrario allo scopo per cui viene comunemente usato.

Inclusione di un header file nel linguaggio C[modifica | modifica sorgente]

Nel nostro file main.c abbiamo il bisogno di usare una funzione definita nella nostra libreria libreria.c. Formalmente dovremmo scrivere all'inizio del file main.c i prototipi delle funzioni del file libreria.c che vogliamo usare nel nostro main.c.

Per agevolarci, creiamo un file di testo file.h che contiene i prototipi delle funzioni specificate in libreria.c. Ecco il nostro header file. Il file appena creato ci consente di aggiungere al nostro main.c tutti i prototipi di funzione di cui abbiamo bisogno senza sforzi.

All'inizio del main.c aggiungiamo la riga:

#include "file.h"

Usiamo le virgolette doppie se specifichiamo un percorso assoluto o relativo; questa sintassi, sebbene piuttosto agevole, è però sconveniente, dal momento che mina la portabilità del programma rendendolo dipendente da file specifici, in specifici percorsi. Usando invece la sintassi

#include <stdio.h>

l'header file viene cercato dal compilatore nelle cartelle standard; l'esempio classico di tale sintassi è l'inclusione di un header della libreria standard del C.

Una volta lanciata la compilazione, il preprocessore sostituisce alla riga con l'include i prototipi delle funzioni di libreria.c usate in main.c e la compilazione continua.