Fișierul antet (uneori fișierul părinte fișierul antet engleză ..), sau să includă fișier - un fișier de limbaje de programare, „inserție“, mecanică în codul sursă compilator în locul în care se află unele linii directoare (Pascal #include.
În C și C ++ de programare. antete - principala modalitate de a se conecta la tipurile de date de program. structură, prototipuri funcționale. Tipuri enumerate mai sus. și macro-uri. utilizate într-un alt modul. Ea are o extensie implicită .h; uneori, pentru C ++ fișierele antet lingvistice utilizează extensia .hpp. Pentru a evita o repornire a aceluiași cod utilizat #ifndef directivă, #define, # endif. Fișierul antet poate conține, în general, orice construcții limbaj de programare, dar, în practică, codul executabil (cu excepția inline-funcții în C ++) în fișierele header nu sunt plasate. De exemplu, identificatorii care trebuie să fie declarate în mai mult de un fișier, este convenabil să se descrie într-un fișier antet, și apoi conectați-l după cum este necesar. În mod similar funcționează modularitate și majoritatea liniilor de asamblare.
În mod tradițional, în antetul fișierelor declară funcții ale bibliotecii standard C și C ++.
În alte limbi (de exemplu, Pascal) aplicate module avansate de sistem. Dar chiar și în aceste fișiere antet au o anumită valoare. Faptul că cele două fișiere (principal și antet) fuzionează într-o singură unitate de traducere. și, prin urmare, fișierul antet poate conține directive preprocesor, sintaxă incompletă.
numire
În software-ul modern, limbaje de programare sunt formate din module care sunt compilate separat. În acest context, se pune întrebarea: cum să se precizeze că subrutina sau variabila X este definită în Y. modulul Există mai multe soluții, se aplică Xi.
Într-una din unitatea de compilare (adică cu -file) descrisă funcția, de exemplu:
Pentru a poate fi invocată de la alte unități de compilare, este obligată să-l declare folosind prototipul. și anume:
Listele initializatã constante Preprocessor sunt alese în fișierul antet pentru înlocuirea valorii acestor constante într-un fișier includ. fișier antet include caracteristici incadrate directivele preprocesor makrozaschity pentru a evita suprapunerea fișier care cuprinde (apariția unei asemenea situații este posibilă cu un fișier de clasă sau moștenire):
În afară de design #ifndef - # endif folosit uneori #pragma nestandard o dată:
Comparație cu achiziția directă de titluri din modulul compilat
Fișierele antet alternative - pentru a obține informații cu privire la tipurile declarate, funcții, etc. direct din modulul compilat ... COSI Pascal. Java și altele.
avantaje
Avantajul fișierelor antet în primul rând pentru a simplifica compilator: fără antetele compilator și linker-ul face același loc de muncă, verificați dacă există o funcție compilat de X la modulul Y.
În cazul în care modulul este scris corect, folosind compilare condiționată poate fi oprit o parte din funcționalitatea sa. De exemplu, în acest caz declină prikomponovyvaniya biblioteca imens program de STL:
În cazul în care modulul este deja compilate, fișierul antet este simultan documentația privind utilizarea modulului.
În cazul în care programatorul a corectat punerea în aplicare a funcțiilor în C-fișier, fără a atinge antetul, acesta nu va provoca o cascadă recompilați toate modulele care folosesc acest antet.
Fișierul antet vă permite să specificați ceea ce nu poate fi setat cu ajutorul modulelor - înlocuirea prin utilizarea #define. Directivele compilatorul sintaxă neterminate ...
deficiențe
Fișierele antet este mult mai lent - pentru a compila C-10 dosare, fiecare dintre care este conectat un lung h fișier, compilatorul va trebui să treacă pe titlul de 10 ori. Pentru a face față acestei probleme, multe compilatoare folosesc un antet precompiled.
Header fișierele împreună cu unele limbajul C ++ obiecte (constante. Templates -funcție inline. Variabile exemplu statice) formează o construcție grea.
Dacă brusc programator schimbat c-dosar, uitând să facă același lucru cu h-fișier, linker-ul va emite un mesaj de eroare vag este nici un număr de linie. Acest lucru este vizibil mai ales în C ++. în cazul în care una și aceeași funcție poate avea un set diferit de argumente. și verificarea nivelului compilator nu funcționează. În cazul în care programatorul lăsat accidental în construcții h-dosar incomplet, o eroare va fi destul de diferit c - sau h-fișier.
În unele limbi (de exemplu, Java) nu trebuie să se schimbe codul în două locuri.
literatură
Vezi ce „File antet“ în alte dicționare:
Fișier Antet - (., Uneori, fișierul părinte, fișierul antet în limba engleză) fișierul antet (sau include fișier) în limbajul de programare C și C ++ fișierul care conține definiția tipurilor de date, structura, prototipuri funcționale, enumerările, macro-uri Preprocessor. Are ... ... Wikipedia
Fișier (PC) - Fișier (dosar limba engleză, directorul.) Conceptul în calcul: esența, permițându-vă să accesați orice sistem de resurse sau pe computer și are un număr de caracteristici: un nume fix (o secvență de caractere, numere, sau ... Wikipedia
File - În acest termen, există alte utilizări, consultați fișierul (dezambiguizare) .. Fișier (Engl. Fișier) bloc de informații pe un dispozitiv de stocare extern, un calculator care are o anumită logică de vedere (de la secvența de simplu ... ... Wikipedia
fișier Computer - Fișier (dosar limba engleză, directorul.) Conceptul în calcul: esența, permițându-vă să accesați orice sistem de resurse sau pe computer și are un număr de caracteristici: un nume fix (o secvență de caractere, numere, sau ... Wikipedia
Fișiere - Fișier (dosar limba engleză, directorul.) Conceptul în calcul: esența, permițându-vă să accesați orice sistem de resurse sau pe computer și are un număr de caracteristici: un nume fix (o secvență de caractere, numere, sau ... Wikipedia
Preprocessor - Preprocesor instrument / C ++ software C, care modifică codul programului pentru elaborarea ulterioară și ansamblul utilizat în limbajul de programare C și descendent C ++ acestuia. Acest preprocessor prevede utilizarea unui set standard de ... ... Wikipedia
stdint.h - standard, limbajul de programare C bibliotecă assert.h complex.h ctype.h errno.h fenv.h float.h inttypes.h iso646.h limits.h locale.h math.h setjmp.h signal.h stdarg. h stdbool.h stddef.h stdint ... Wikipedia
errno.h - standard, limbajul de programare C bibliotecă assert.h complex.h ctype.h errno.h fenv.h float.h inttypes.h iso646.h limits.h locale.h math.h setjmp.h signal.h stdarg. h stdbool.h stddef.h ... Wikipedia
Stdio.h - standard, limbajul de programare C bibliotecă assert.h complex.h ctype.h errno.h fenv.h float.h inttypes.h iso646.h limits.h locale.h math.h setjmp.h signal.h stdarg. h stdbool.h stddef.h stdint.h stdio.h stdlib.h ... Wikipedia
stdio.h - standard de IO C bibliotecă limbaj de programare assert.h complex.h ctype.h errno.h fenv.h float.h inttypes.h iso646.h limits.h locale.h math.h setjmp.h signal.h stdarg. h stdbool.h stddef.h ... Wikipedia
- Fișierul antet. Dzhessi Rassel. Această carte va fi făcută în conformitate cu comanda pe tehnologia de imprimare Tehnologie-on-Demand. Conținutul de calitate înaltă prin articole wikipedia! Fișierul antet (uneori fișierul părinte, ing. Antetul ... Citește mai mult Vand pentru 1.125 de ruble