A működési elv lefordított fejlécek, fejlesztési környezet, a Visual C, cikkek
Hogy ellenőrizzék az előre lefordított rendeltetésszerű fordító irányelv #pragma hdrstop. Minden header fájlokat is tartalmazza ezt az irányelvet helyezünk egy-egy képet, például:
Ez létrehoz egy képet tartalmazó szekvenciát össze vcl.h és string. Ez a kép lehet használni más cpp-fájl, ha azt akarjuk, hdrstop irányelv tartalmazza ugyanazt a fájlt ugyanabban a sorrendben. Hadd hívjam fel a figyelmet arra, milyen fontos, nem csak az összetétele, hanem az, hogy a fejléc - akkor is, ha a következő cpp-fájl tartalmazza az azonos címmel, de az első szett: string, majd vcl.h, akkor erre a cpp-fájl új képet hoz létre.
Így az újrafelhasználás előre lefordított header szükséges két feltétel:- készítmény tartalmazza fájlokat hdrstop irányelv azonosnak kell lennie
- A szekvencia file engedélyezéséhez hdrstop irányelv azonosnak kell lennie
- Minden projekt cpp-fájlok ugyanabban a blokkban felvételen az irányelv hdrstop
- ez az egység tartalmaznia kell az összes szabványos fejléc fájlokat a projekthez szükséges
Teljesíti ezeket a feltételeket éppen elegendő erre a célra az elején minden cpp fájl meg kell tenni a következő sorokat:
ahol pch.h - tartalmazó fájl felvételét az összes szabványos fejlécek:
A teljes szöveg az én verzióm ez a fájl végén látható. A h-fájlokat tartalmazza az előre lefordított kép egymásra korlátozás - nem kellene inicializált adat például, vannak vonalak math.hpp:
Jelenléte miatt ezek állandók math.hpp a pch.h nem indíthat.
By the way, a C ++ Builder hozzáadásával új modulok projekt munkagépek leírt PCH stratégia. Például, amikor létrehoz egy új alkalmazás, unit1.cpp fájl így néz ki:
Ha megnézzük a szöveget vcl.h, kiderül, hogy ez egy wrapper felvételét számos más szabványos fejlécek.
Kezelése vcl.h készítmény tartalmazza a fejléc segítségével speciális karakterek (INC_VCLDB_HEADERS, INC_VCLEXT_HEADERS et al.). Az én verzió pch.h ezek a jelek használatával határozzák #define, hogy vcl.h, ami növeli a számát include fájlokat.
Mivel a jelenlegi projekt elindításához segítségével előre lefordított header
Még egy nagy projekt, hogy elkezdje használni az előre lefordított fejlécek igen egyszerű.
A projekt tulajdonságait, hogy caching előre lefordított fejlécek és Ajánlatos meghatározni a „személyes” fájlt, amelyben tárolni a képet előre lefordított fejlécek: Project - Options - fül Compiler, a csoport „Pre-össze fejlécek”. Ott kell kiválasztani a „Cache előre összeállított fejlécek”, és a helyszínen „Fájlnév”, meg „pch.csm”. Ezzel a konfigurációval egy képet előre lefordított fejlécek található a projekt mappájában, a pch.csm fájlt.
Aztán az elején minden cpp-modul beszúrni kívánt 2 sor:
Minden korábban szereplő header fájlok maradnak a helyükön, akkor nem kell eltávolítani. Például:
Mivel az összes szabványos fejlécek a Guard újra be, majd ismételt rájuk hivatkozásokat nem vonja maga után a visszakapcsolás.
Alapvetően ha pch.h, műszaki szükségességét, hogy a szabványos fejlécek eltűnnek. Azonban érdemes mégis az adja meg az összes szükséges minden egyes modul alábbi címek irányelv #pragma hdrstop. Először is, ez bizonyos mértékig dokumentált modul - include állományok lehet megítélni, milyen lehetséges előnyökkel ezt a modult. Másodszor, ez megkönnyíti az újrahasznosítás modulok más projektekben, amelyek vagy nem használt pch.h, vagy annak tartalmát más lehet.
Elméletileg tudjuk tovább növelni a hatékonyságot a válogatás, ha szerepel pch.h nem csak a hagyományos, hanem az összes egyéni fejlécet. Gyakorlatilag, mivel az egyéni fejlécek változik gyakran, akkor ez maga után gyakori recompilation pch.h, ami negatív hatással van a fordítási idő. Ezen túlmenően, az egyéni fejlécek általában nem túl nagy, és össze gyorsan. Ezért tartalmazza azokat pch.h nem tanácsos.
Hogyan ellenőrizhető, hogy a előrefordított fejlécek hatékonyan használják
Amikor új fájlokat a projekt ne felejtsük el, hogy bevonja őket pch.h, mert különben nem általános előrefordított kép lesz. Ugyanez a helyzet akkor fordulhat elő, ha a szabványos fejlécek szerepelnek egyes modulok, amelyek nem szerepelnek pch.h. Annak érdekében, hogy nyomon követni ezeket a fájlokat, számos módja van:- vizuális megfigyelése a fordítási folyamatot. Jellemzően a sorok számát állítják össze egyetlen fájlba nem haladhatja meg a 10000-15000 sorokban
- Amennyiben a projekt választott egy egyedi fájl tárolja a kép előre lefordított fejléc és a fájl neve pch.csm, szükséges megjegyezni, jelenléte kiegészítő fájlok neveit PCH. # 00, PCH. # 01, stb Ha az összes projekt fájlokat használják ugyanazt előrefordított kép, a kiegészítő fájlok, azonban csak egy - pch # 00 .. Ha több fájl van, az azt jelenti, hogy bizonyos cpp-modulok további képeket.