#include direttiva (C/C++)

Indica al preprocessore di includere il contenuto di un file specificato nel punto in cui viene visualizzata la direttiva.

Sintassi

#include "path-spec"
#include <path-spec>

Osservazioni:

È possibile organizzare le definizioni di costanti e macro in file di inclusione (noti anche come file di intestazione) e quindi usare #include le direttive per aggiungerle a qualsiasi file di origine. I file di inclusione sono inoltre utili per incorporare le dichiarazioni delle variabili esterne e i tipi di dati complessi. I tipi devono essere definiti e denominati una sola volta in un file di inclusione creato a tale scopo.

La specifica di percorso è un nome di file che può essere facoltativamente preceduto da una specifica di directory. Il nome file deve essere il nome di un file esistente. La sintassi della specifica di percorso dipende dal sistema operativo in cui viene compilato il programma.

Per informazioni su come fare riferimento agli assembly in un'applicazione C++ compilata tramite /clr, vedere #using la direttiva .

Entrambe le forme di sintassi fanno sì che la #include direttiva venga sostituita dall'intero contenuto del file specificato. La differenza tra le due forme è l'ordine dei percorsi cercati dal preprocessore quando il percorso viene specificato in modo incompleto. Nella tabella seguente viene evidenziata la differenza tra i due formati di sintassi.

Formato di sintassi Azione
Formato con virgolette Il preprocessore cerca i file di inclusione nell'ordine seguente:

1) Nella stessa directory del file che contiene l'istruzione #include .

2) Nelle directory dei file di inclusione attualmente aperti, nell'ordine inverso in cui sono stati aperti. La ricerca inizia nella directory del file di inclusione padre e continua nelle directory superiori dei file di inclusione padre del padre.

3) Lungo il percorso specificato da ogni /I opzione del compilatore.

4) Lungo i percorsi specificati dalla INCLUDE variabile di ambiente.
Formato con parentesi angolari Il preprocessore cerca i file di inclusione nell'ordine seguente:

1) Lungo il percorso specificato da ogni /I opzione del compilatore.

2) Quando la compilazione si verifica nella riga di comando, lungo i percorsi specificati dalla INCLUDE variabile di ambiente.

Il preprocessore arresta la ricerca non appena trova un file con il nome specificato. Se si racchiude una specifica di percorso completa e non ambigua per il file di inclusione tra virgolette doppie (" "), il preprocessore cerca solo tale specifica di percorso e ignora le directory standard.

Se il nome file racchiuso tra virgolette doppie è una specifica di percorso incompleta, il preprocessore cerca innanzitutto la directory del file padre . Un file padre è il file che contiene la #include direttiva . Ad esempio, se si include un file denominato file2 in un file denominato file1, file1 è il file padre.

I file di inclusione possono essere annidati: una #include direttiva può essere visualizzata in un file denominato da un'altra #include direttiva. Ad esempio, file2 può includere file3. In questo caso, file1 sarebbe ancora l'elemento padre di file2, ma sarebbe il padre di file3.

Quando i file di inclusione sono annidati e durante la compilazione si verifica nella riga di comando, la ricerca della directory inizia nella directory del file padre. Quindi procede attraverso le directory di qualsiasi file nonno. Questo significa che la ricerca inizia in base alla directory che contiene l'origine attualmente in fase di elaborazione. Se il file non viene trovato, la ricerca passa alle directory specificate dall'opzione del /I compilatore (Directory di inclusione aggiuntive). Infine, vengono eseguite ricerche nelle directory specificate dalla INCLUDE variabile di ambiente.

Nell'ambiente di sviluppo di Visual Studio la INCLUDE variabile di ambiente viene ignorata. Vengono invece utilizzati i valori specificati nelle proprietà del progetto per le directory di inclusione. Per altre informazioni su come impostare le directory di inclusione in Visual Studio, vedere Includi directory e directory di inclusione aggiuntive.

Nell'esempio seguente viene illustrata l'inclusione di file tramite parentesi angolari:

#include <stdio.h>

Nell'esempio viene aggiunto il contenuto del file denominato stdio.h al programma di origine. Le parentesi angolari fanno in modo che il preprocessore esegui la ricerca nelle directory specificate dalla INCLUDE variabile di ambiente per stdio.h, dopo la ricerca nelle directory specificate dall'opzione del /I compilatore.

Il seguente esempio mostra l'inclusione di file tramite il formato con virgolette:

#include "defs.h"

Nell'esempio viene aggiunto il contenuto del file specificato da defs.h al programma di origine. Le virgolette doppie indicano che il preprocessore esamina innanzitutto la directory contenente il file di origine padre.

L'annidamento dei file di inclusione può continuare fino a 10 livelli. Al termine dell'elaborazione dell'annidato #include , il preprocessore continua a inserire il file di inclusione padre contenitore nel file di origine originale.

Specifico di Microsoft

Per individuare i file di origine da includere, il preprocessore cerca innanzitutto le directory specificate dall'opzione del /I compilatore. Se l'opzione /I non è presente o se ha esito negativo, il preprocessore usa la INCLUDE variabile di ambiente per trovare eventuali file di inclusione tra parentesi angolari. L'opzione della INCLUDE variabile di ambiente e del compilatore può contenere più percorsi separati da punto e /I virgola (;). Se più directory vengono visualizzate come parte dell'opzione /I o all'interno della INCLUDE variabile di ambiente, il preprocessore li cerca nell'ordine in cui vengono visualizzati.

Il comando

CL /ID:\msvc\include myprog.c

fa in modo che il preprocessore cerchi nella directory D:\msvc\include\ i file di inclusione, ad stdio.hesempio . I comandi

SET INCLUDE=D:\msvc\include
CL myprog.c

hanno lo stesso effetto. Se entrambi i set di ricerca hanno esito negativo, verrà generato un errore irreversibile del compilatore.

Se il nome file viene specificato completamente per un file di inclusione con un percorso che include due punti (ad esempio, F:\MSVC\SPECIAL\INCL\TEST.H), il preprocessore segue il percorso.

Per i file di inclusione specificati come #include "path-spec", la ricerca di directory inizia nella directory del file padre e quindi procede nelle directory di tutti i file nonni. Ovvero, la ricerca inizia rispetto alla directory che contiene il file di origine che viene elaborato. Se non è presente alcun file nonno e il file non viene ancora trovato, la ricerca continua come se il nome del file fosse racchiuso tra parentesi angolari.

END Specifico di Microsoft

Vedi anche

Direttive del preprocessore
/I (Directory di inclusione aggiuntive)