Header file: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
SunBot (discussione | contributi)
m Bot: Standardizzo interwiki
Nessun oggetto della modifica
Riga 2:
Un header file del linguaggio [[C_(linguaggio)|ANSI C]] è un semplice file di testo che contiene i [[prototipo di funzione|prototipi]] delle [[funzione (informatica)|funzioni]] definite nel relativo file ''.c</tt>. I prototipi permettono al [[compilatore]] di produrre un [[codice oggetto]] che può essere facilmente unito (detto volgarmente "[[linker|linkato]]") con quello della libreria in futuro, anche senza avere la libreria sottomano al momento.
 
=== EsempioStruttura ===
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 ===
Nel nostro file <tt>main.c</tt> abbiamo il bisogno di usare una funzione definita nella nostra libreria <tt>libreria.c</tt>. Formalmente dovremmo scrivere all'inizio del file <tt>main.c</tt> i prototipi delle funzioni del file <tt>libreria.c</tt> che vogliamo usare nel nostro <tt>main.c</tt>.
 
Line 11 ⟶ 14:
#include "file.h"
</source>
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
Usiamo le virgolette doppie se <tt>main.c</tt> e <tt>file.h</tt> sono nella stessa cartella. Nel caso di una libreria dell'API di [[C_(linguaggio)|C]], es. <tt>stdio.h</tt>, usiamo questa sintassi:
 
<source lang=c>
#include <stdio.h>
</source>
 
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 <tt>libreria.c</tt> usate in <tt>main.c</tt> e la compilazione continua.