Direttiva di inclusione
Nella programmazione, una direttiva di inclusione è una direttiva che permette di inserire i contenuti di un dato file all'interno del file dove viene scritta la direttiva. Questi file inclusi sono detti header o file di intestazione e sono spesso usati per definire la disposizione fisica dei dati del programma, dei pezzi di codice procedurale o delle dichiarazioni anticipate, promuovendo l'incapsulamento e il riutilizzo del codice o dei dati.
File di intestazione
[modifica | modifica wikitesto]Un file di intestazione è un file che consente ai programmatori di scorporare alcuni elementi del codice sorgente di un programma in file riutilizzabili. I file di intestazione contengono comunemente dichiarazioni anticipate di classe, subroutine, variabili o altri identificatori. I programmatori che desiderano dichiarare identificatori standardizzati in più di un file sorgente possono inserire tali identificatori in un singolo file di intestazione, che gli altri codici possono includere ogni volta che il contenuto dell'intestazione è richiesto. Questo serve a mantenere l'interfaccia nell'intestazione separata dall'implementazione.[1]
La libreria standard C e la libreria standard C++ dichiarano tradizionalmente le loro funzioni standard nei file di intestazione.
Alcuni linguaggi compilati di recente creazione (come Java e C#) non utilizzano dichiarazioni in avanti; gli identificatori vengono riconosciuti automaticamente dai file sorgente letti direttamente dai simboli della libreria dinamica. Ciò significa che i file di intestazione non sono necessari.
Inclusione in C/C++
[modifica | modifica wikitesto] Per utilizzare in un dato codice main.c
le funzioni definite nel file libreria.c
, formalmente è necessario scrivere all'inizio del file main.c
i prototipi delle funzioni di libreria.c
. Questi prototipi possono invece essere scritti in un file separato, file.h
, ovvero il file di intestazione. Per includere nel main.c
il contenuto dell'header, che permette di usare il contenuto della libreria, occorre scrivere la direttiva #include
.
#include "file.h"
Le virgolette doppie implicano un percorso assoluto del file; usando invece la sintassi #include <file.h>
l'header file viene cercato dal compilatore inizialmente nelle cartelle standard, opportuno per le intestazioni delle librerie standard.
Una volta lanciata la compilazione, il preprocessore sostituisce alla direttiva i prototipi delle funzioni di libreria.c
usate in main.c
e la compilazione continua.
I prototipi permettono al compilatore di produrre un codice oggetto che può essere facilmente unito con quello della relativa libreria in futuro, anche senza avere la libreria sottomano al momento.
Note
[modifica | modifica wikitesto]- ^ Alan Griffiths, Separating Interface and Implementation in C++, su accu.org, ACCU, 2005. URL consultato il 7 maggio 2013.