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

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++

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

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.