Käännetty header

Tietokoneiden ohjelmointi, käännetty otsikko on otsikkotiedosto joka on käännetty välimuoto, joka on nopeampi käsitellä kääntäjä. Käyttö käännetty otsikot voivat merkittävästi vähentää kokoomateos aikaa, varsinkin kun sitä sovelletaan suuria header-tiedostot, header-tiedostot, jotka sisältävät monia muita header tiedostoja tai header-tiedostot, jotka ovat mukana monissa käännösyksiköiden.

Perussyyt

C ja C ++ ohjelmointikielet, header tiedosto on tiedosto, jonka teksti voidaan automaattisesti sisällyttää toinen lähde tiedoston C esikäsittelijään käyttämällä esiprosessorin direktiivin lähdetiedoston.

Header-tiedostot voivat joskus olla hyvin suuria määriä lähdekoodia. Tämä pätee erityisesti kynnyksellä suuri "otsikon" kirjastoihin jotka käyttävät laajasti malleja, kuten Eigen matematiikka kirjasto ja Boost C ++ kirjastot. Ne on kirjoitettu lähes kokonaan header-tiedostot, että käyttäjän n sijaan ovat yhteydessä suorituksen. Niinpä aina kun käyttäjä laatii ohjelmansa, käyttäjä on olennaisesti kääntää uudelleen lukuisia otsikon kirjastot myös, että olisi tavanomaisesti pitänyt esikäännetty jaettuihin esineitä tai Dynamic Link kirjastot.

Voit vähentää kokoelma kertaa, jotkut kääntäjät sallivat header tiedostot kootaan muodossa, joka on nopeampi kääntäjä prosessi. Tämä välimuoto tunnetaan käännetty otsikko, ja on yleisesti pidetään tiedosto nimetty extension.pch tai vastaavia, kuten as.gch GNU Compiler Collection.

Käyttö

Yksinkertainen esimerkki

Koska C ++ tiedosto source.cpp joka sisältää header.hpp:

Laadittaessa source.cpp ensimmäistä kertaa käännetty otsikko ominaisuus käytössä, kääntäjä tuottaa käännetty header ,. Seuraavan kerran, jos aikaleima tämän otsikon ei muuttunut, kääntäjä voi ohittaa kokoelma vaihe liittyviä ja sen sijaan käyttää header.pch suoraan.

Eteenpäin ilmoitus

Meillä on kaksi luokkaa: A ja B. A-luokan on melko yksinkertainen:

Oletetaan B viittaa ominaisuus A-luokan

Jos määrittely luokan muuttuisi, B.hpp olisi kääntää uudelleen. Tämän välttämiseksi ohjelmoija voi viitata jonka osoitin. Tämän syntaksi, B.hpp olisi:

Kuten voidaan nähdä, eteenpäin ilmoitus luokan sijasta käytetään myös otsikon. Mutta tämä osoitin syntaksin vaikeuttaa käyttö muuttujan hinta vähemmän kokoelma.

Tämä ongelma ratkaistaan ​​käyttö käännetty otsikot. Kun tiedostot on koottu ensimmäistä kertaa, A.hpp ja B.hpp kootaan A.pch ja B.pch, ja A.cpp ja B.cpp kootaan niiden objekti tiedostoja. Kun määritelmä A-luokan muutetaan, B.hpp ei tarvitse jäsentää uudelleen.

Yhteinen toteutukset

stdafx.h

stdafx.h on tiedosto, syntyy Microsoft Visual Studio IDE velhoja, joka kuvaa sekä vakio-järjestelmän ja hankekohtainen sisältävät tiedostoja, joita käytetään usein, mutta tuskin koskaan muuttaa.

Yhteensopiva kääntäjät precompile tämä kuva vähentää yleistä koota kertaa. Visual C ++ ei käänny mitään ennen lähdetiedoston, ellei koota vaihtoehto on valittuna; se olettaa kaikkien koodia lähde enintään että linja on jo käännetty.

AFX vuonna stdafx.h sanoista Application Framework laajennuksia. AFX oli alkuperäinen lyhenne Microsoft Foundation Classes. Vaikka nimi stdafx.h käytetään oletusarvoisesti, hankkeet voivat määritellä vaihtoehtoinen nimi ja hoitaa kaikki sisältää tiedostoja, jotka sisältävät hankkeiden tiedostoon.

GCC

Käännetty otsikot tuetaan GCC. GCC: n lähestymistapa on samanlainen nämä VC ja yhteensopivien kääntäjät. GCC säästää käännetty versiot header tiedostoja ".gch" pääte. Laatiessaan lähdetiedoston, kääntäjä tarkistaa, onko tämä tiedosto on samassa hakemistossa ja käyttää sitä, jos mahdollista.

GCC voi käyttää vain käännetty versio jos sama kääntäjä kytkimet on asetettu, kun otsikko on koottu ja se voi käyttää enintään yhden. Edelleen, vain esikäsittelijään ohjeet voidaan sijoittaa ennen käännetty otsikon.

GCC tunnistaa automaattisesti useimmat header tiedostoja niiden laajentamista. Jos tämä ei onnistu, -x kytkin voidaan käyttää varmistamaan, että GCC kohtelee tiedoston otsikko.

C ++ Builder

Vuonna oletusprojektissa kokoonpano, C ++ Builder kääntäjä epäsuorasti tuottaa käännetty otsikot kaikkien otsikoiden sisällyttänyt lähdemoduulin kunnes viiva on löytynyt. Käännetty otsikot ovat yhteisiä kaikille moduulien hankkeen jos mahdollista. Esimerkiksi työskenneltäessä Visual Component kirjasto on tavallista sisällyttää otsikon ensimmäinen, joka sisältää suurimman osan yleisesti käytettyjen VCL header-tiedostot. Siten käännetty otsikko voidaan jakaa kaikki projektin moduulit, joka vähentää dramaattisesti rakentaa kertaa.

Lisäksi C ++ Builder voidaan mittalaitteilla käyttämään tiettyä header tiedosto esikäännetty otsikko, samanlainen mekanismin Visual C ++.

C ++ Builder 2009 esittelee "käännetty Header Wizard", joka jäsentää kaikki lähde moduulit hankkeen mukana header-tiedostot, luokittelee ne ja luo ja testaa käännetty otsikkoon määritetyt tiedostot automaattisesti.

(0)
(0)
Edellinen artikkeli Ystäväsi Rat
Seuraava artikkeli Stellar pulsations

Kommentit - 0

Ei kommentteja

Lisääkommentti

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Merkkiä jäljellä: 3000
captcha