Directiva #include precizează că preprocesorul procesează conținutul fișierului, în cazul în care conținutul apare în programul sursă de la punctul în care apare directiva.
#include "cale-spec"
#include
numele fișierului cu numele de cale, dacă este necesar, precedat de o specificație de catalog. Numele fișierului trebuie să fie un nume de fișier existent. sintaxa căii de specificare depinde de sistemul de operare în care este compilat programul.
Căutarea prin preprocesor include fișiere în următoarea ordine:
1. În același director ca și fișierul care conține #include.
2. În directoarele deschise anterior toate fișierele incluse în ordinea inversă în care au fost deschise. Căutarea începe din directorul fișierului inclus, care a fost deschis ultima dată, apoi continuă prin catalogul fișierului inclus, care a fost deschis primul.
3. Pe parcursul fiecărui parametru specific al compilatorului / I.
4. De-a lungul căilor specificate în variabila de mediu INCLUDE.
Căutarea prin preprocesor include fișiere în următoarea ordine:
1. Pe parcursul fiecărui parametru compilator / I.
2. Când compilați pe linia de comandă de-a lungul căilor specificate în variabila de mediu INCLUDE.
Preprocesorul va opri căutarea numai atunci când poate găsi fișierul cu numele dat. Dacă este specificat plinul. exact, specificația căii pentru fișierul include între ghilimele duble (""), specificația căii va ignora directoarele standard.
Dacă numele fișierului este inclus în ghilimele duble, directiva se adresează mai întâi directorului de fișiere "părinte". Fișierul parent conține directiva #include. De exemplu, dacă specificați fișierul2 în fișierul1, fișierul1, fișierul părinte.
Fișierele conectate pot fi imbricate, adică directiva #include poate apărea într-un fișier cu alt nume #include directive. De exemplu, fișierul 2 este conectat la fișierul3. În acest caz, fișierul1 este încă părintele fișierului2, dar a devenit "bunicul" pentru fișierul3.
Următorul exemplu arată modul de includere a fișierelor cu paranteze unghiulare:
Acest exemplu adaugă conținutul fișierului numit STDIO.H la program. Parantezele unghiulare determină ca preprocesorul să fie căutat în directoarele specificate în variabila de mediu INCLUDE pentru STDIO.H.
Următorul exemplu arată includerea fișierelor utilizând un formular cotat:
Acest exemplu adaugă conținutul fișierului specificat de DEFS.H la program. Citatele duble înseamnă că preprocesorul caută directorul care conține fișierul sursă-mamă.
Includerea fișierelor incluse poate dura până la 10 nivele.
Numai pentru sistemele Microsoft
Pentru a găsi fișiere sursă inclusă, preprocesorul caută mai întâi directoarele specificate de opțiunea compilator / I. Dacă parametrul / I nu este prezent sau nu a reușit, preprocesorul utilizează variabila de mediu INCLUDE. Pentru a găsi orice fișiere incluse în paranteze unghiulare. Variabila de mediu INCLUDE și opțiunea de compilator / I pot conține mai multe separate printr-un punct și virgulă (cale;;). Dacă mai mult de un director apare ca parte a parametrului / I sau în variabila de mediu INCLUDE. preprocesorul le caută în ordinea în care se află, de exemplu, comanda:
CL / ID: \ MSVC \ INCLUDE MYPROG.C
cauzează directorul preprocesor D: \ MSVC \ INCLUDE pentru a căuta fișiere, cum ar fi STDIO.H. echipa:
SET INCLUDE = D: \ MSVC \ INCLUDE
CL MYPROG.C
au același efect. În cazul în care ambele seturi de căutări nu reușesc, se va crea eroarea de compilator nerecuperabilă.
Dacă numele de fișier este specificat în întregime, include o cale de fișier care conține două puncte (de exemplu, F: \ MSVC \ SPECIAL \ INCL \ TEST.H), preprocesorul ar trebui să fie în acest fel.
Pentru a include fișiere care sunt definite ca #include „cale-caietul de sarcini“, căutarea începe cu fișierul părinte director director, și apoi continuă în cataloagele tuturor bunicul fișiere. Astfel, începe căutarea directorului. Dacă fișierul și fișierul bunicului nu sunt găsite, căutarea continuă dacă numele fișierului este închis în paranteze unghiulare.