Anteturi precompilate

antet precompiled (născut antete pre-compilate.) - în mass-media limbaje de programare C și C ++ - o modalitate de a accelera elaborarea programelor datorită tratării prealabile a așa-numitelor antete. care conțin modulele și interfețele, în conformitate cu normele de date limbaj de programare, conectate la programul prin inserarea directă a textului în corpul programului principal cu o #include specială directivă preprocesor. antetele precompiled sunt stocate pe disc ca un fișier în formatul intern al compilatorului și recompilarea timpul proiectului privind prelucrarea și conexiunea este redusă în mod semnificativ.







Limba de programare C folosește fișierele header pentru a conecta un modul extern. Acest lucru simplifică compilatorul și oferă o anumită flexibilitate - și a funcționat timp de 20 de ani, în timp ce antetele erau mici, iar fișierele din proiect - puțin. Odată cu integrarea proiectelor software, timpul de compilare a început să crească în mod quadratic [1] - crește ca numărul de unități de compilare. și numărul de anteturi conectate la fiecare unitate specifică. În proiecte foarte mari, o recompilare completă durează zeci de minute și este mai des efectuată în timpul asamblării de noapte. decât pe locurile de muncă ale programatorilor.

În plus, limba de programare C aparține familiei LR (1). și prin urmare compilatoarele C sunt mai lentă, de exemplu, Pascal (care este LL (1)) [sursa nu este specificată 1402 zile].







Pentru a reduce timpul de compilare, s-au dezvoltat antete precompilate. Deoarece antetele se schimbă mult mai puțin frecvent fișiere care conțin cod de program (o bibliotecă - aproape niciodată), instrument inteligent de optimizare a dovedit a efectua pre-procesare a antetului, și să le transforme în fișiere de un tip special, care, atunci când programul este compilat, vă puteți conecta fără a trece prin prima etapă de compilare. Datorită precompilării anteturilor, numai piesele modificate ale programului sunt supuse procesării complete de către compilator. Cu toate acestea, compilarea preliminară a antetului nu ajută întotdeauna:

  1. Dacă modificați oricare dintre anteturile precompilate, întregul set este recompilat.
  2. La recompilarea completă, câștigul devine în timp, când același set este aplicat cel puțin în două unități de compilare.

De aceea, de regulă, setul precompilat include tot felul de anteturi de bibliotecă, mari și în același timp rareori schimbate.

Precompune tot ceea ce se întâmplă înainte de directiva #pragma hdrstop.

H fișiere atunci când compilarea CCG presupune în mod automat că doriți să faceți un antet precompilata (sau poate fi specificat în linia de comandă, tasta -x). Cele mai multe module de programare (de exemplu, Cod: Blocuri) vă permit să specificați fișierele care trebuie precompilate. Soluția standard este de a "arunca" cele mai utilizate, dar rareori schimbătoare, anteturile într-un fișier h și conectați-o mai întâi.

Situația este similară cu CCG. Visual C ++ versiunea 6.0 și de mai sus precomprimă antetul cu numele standard - stdafx.h. (Acest nume poate fi modificat de opțiunea de compilator). În IDE, expertul New Project vă permite să alegeți dacă trebuie utilizate anteturile precompilate. Opțiune de utilizare compilator /Yu'stdafx.h „se adaugă în mod automat, iar compilarea orice fișier care nu conține #include«stdafx.h», va fi oprit cu o eroare.







Articole similare

Trimiteți-le prietenilor: