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
Csökkentse költségeit összeállításának szabványos fejlécek minimálisra lehet használni, ha a összeállításához egy kép, amely az összes szabványos fejlécek a projekthez szükséges. Ehhez szükség van a következőkre:
  • 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.



Kapcsolódó cikkek