Cpp preprocessor c header fájlok

Tartalmazza a fájl egy fájl, ami tartalmazza meghatározásai függvények és változók, valamint a makrók, valamint néhány eredeti fájlokat. Kizárólag a program fejlécében használt fájlok preprocessor irányelv „#include”.

Rendszerint végződő fájlt „.h”, és ne használjon más szabványok.

Mivel a felhasználói fájlok és rendszerfájlok szerepel a programban a „#include” előfeldolgozó irányelvet. Három változatban:

Ez a módosítás lehet csatlakoztatni a rendszerfájlokat. Amikor ez végre keresést nevű fájlt FILE jegyzéklistát előre meghatározott, majd a rendszer alapértelmezett könyvtárakat. Az opció „-I” meghatározza a könyvtárak keresni include fájlokat. „-nostdinc” opciót szabvány tiltja a keresési rendszer katalógusok és keresések csak a megadott könyvtárakat.

FILE érv nem tartalmazza a szimbólum „>”, bár tartalmazhat a szimbólum "<'.

Ez a módosítás használják include fájlokat a felhasználói programok. Először FILE fájl megnézése az aktuális könyvtárban, majd a rendszer magában foglalja a fájlok könyvtárba. Az aktuális könyvtár az aktuális fájl feldolgozása folyamatban van. Ő látható az első helyen, mivel feltételezhető, hogy vannak olyan fájlokat kapcsolatos aktuális fájl feldolgozása folyamatban van. (Ha a „-l-” opció meg van adva, az aktuális könyvtárban.)

FILE érv nem tartalmazhat karaktereket „„”. Backslash karakter kezelik külön karakterek, nem az elején a szekvencia. Így az irányelv»#include »x \ n \\ y««jelzi a fájl nevét tartalmazó három backslash karaktert.

Ez a módosítás az úgynevezett „számított #include direktíva”. Bármilyen irányelv „#include”, nem egyezik a módosítások a fent leírt számítják irányelv. Bármi más vonalon van jelölve a megfelelő makro, ami felülírja az értéke a nevét. A kapott karakterlánc kell pontosan ugyanaz, mint a fenti módosítások (azaz a neve a fájlnak kell idézőjelbe vagy hegyes zárójelek).

Ez a funkció lehetővé teszi, hogy meghatározza a makrók, amely lehetővé teszi, hogy módosítsa a nevét tartalmazza fájlokat. Ez a funkció például arra, hogy átvigye programok egyik operációs rendszerből a másikba, amely megköveteli a különböző header fájlokat.

Az irányelv „#include” azt jelzi, C előfeldolgozó, hogy feldolgozza a megadott fájlt feldolgozás előtt a fennmaradó aktuális fájlt. Által kiadott információ elpárologtató, már tartalmazza azokat az adatokat, majd kapott adatok feldolgozása során a mellékelt fájlt, és ami viszont, majd a kapott adatok feldolgozása során a szöveg, a következő „#include” irányelvek. Például, mivel a következő plug „header.h” file:

és a fő program neve „program.c”, és ezt a fájlt.

A kapott adatok feldolgozása során „program.c” program a következő lesz:

A dugó tartalmazhat egy fájl elején vagy végén sisntaksicheskoy szerkezetű, mint például a meghatározása funkciót.

Követő időszakban az irányelv „#include” mindig üres, és hozzáadjuk a C előfeldolgozó akkor is, ha a plug-in-fájl nem tartalmaz a lezáró újsor karaktert.

Gyakran előfordul, hogy egy include fájl tartalmazza másik fájlt. Ez ahhoz vezethet, hogy az a tény, hogy egy külön fájlban kell csatlakoztatni többször, ami hibákhoz vezethet, ha a fájl határozza meg, hogy milyen típusú struktúrák és meghatározások. Ezért el kell kerülni összekötő több fájlt.

Általában ez történik a foglyok a teljes fájl tartalmát, az alábbiak szerint:

„FILE_FOO_SEEN” makro azt jelzi, hogy a fájl már Bizottság, és egy nap. A csatlakoztatott felhasználói makró fájlokat nem kezdődhet a „_” karakterre. A rendszer dugja a fájlnév nem kezdődhet „__” annak érdekében, hogy elkerüljék a felhasználói programok. Bármi legyen is a fájl nevét a makró tartalmaznia kell a nevet és néhány további szöveget, ne ütközzenek más voznknoveniya include fájlokat.

GNU C előfeldolgozó épült oly módon, hogy a feldolgozás a mellékelt fájlt, ellenőrzi a rendelkezésre álló bizonyos tervek és a leghatékonyabb eljárások őket. Előfeldolgozó külön megjegyzi a teljes fájlmellékleteként feltétel „#ifndef”. Ha az include fájl tartalmazza az irányelv „#include”, jelezve a feldolgozott fájl vagy makró a „#ifndef” irányelvet már meghatároztuk, a feldolgozott fájl teljesen figyelmen kívül hagyja.

Van is egy különleges irányelv elpárologtató, hogy a fájl kell venni többször is. Ez az irányelv az úgynevezett „#pragma egyszer.” Ezt használták mellett az irányelv #ifndef ", és ez most elavult, és nem kellene prmenyaetsya.

Az objektum-orientált C nyelvben van egy módosítás „#include” irányelv, az úgynevezett „#import”, mellyel vkyucheniya fájl egynél többször. Ha irányelv „#import” helyett „#include” nem igényel hagyományos sebességgel megelőzésére több fájl feldolgozása.

„Öröklés”, hogy mi történik, ha egy fájl vagy tárgy vagy egy részét képezi annak tartalmát virtuális másolhat másik tárgy vagy fájlt. Ha csatlakozik a öröklődését a fájlokat azt jelenti, hogy a fájl tartalmazza egy másik fájlt, majd lecseréli, vagy bővíti semmit.

Ha a plug-in fájlt, és örökli a fő header file különböző nevek, mint például öröklés közvetlen. Ez használ egy design „#include»BASE«” a származtatott fájlt.

Néha szükség van, hogy az örökölt és a fő header file ugyanaz volt a neve.

Tegyük fel például, hogy az alkalmazás a rendszer tartalmazza file „sys / signal.h”, de a fájl verzióját „/usr/include/sys/signal.h” ez a rendszer végzi, ami szükséges az alkalmazás. Ez lesz sokkal kényelmesebb, hogy meghatározza a helyi változata, esetleg a neve „/usr/local/include/sys/signal.h” helyettesítésére vagy kiegészítésére a változat a rendszerrel együtt leszállított.

Ez történhet „-I.” Option felmérésében és a fájl létrehozásakor „sys / signal.h”, amely elvégzi a szükséges program funkcióit. De ahhoz, hogy ez a fájl tartalmazza a szabványos file „sys / signal.h” nem is olyan könnyű. Ha a sor „#include „Ebben a fájlban fog csatlakozni az új változat a fájl, hanem a standard változat a rendszer. Ez vezet a rekurzív hiba összeállításakor.

Ha ön használ #include direktíva ` A „kívánt fájl található, de ez a módszer nem hatásfokú, mert tartalmazza a teljes elérési utat a fájlrendszerben. Ez hatással lehet a tartalmat a rendszer, mert ez azt jelenti, hogy bármilyen változás a rendszer fájlokat helyszíneken további változtatások lehetnek szükségesek máshol.

Hatékonyabb megoldás erre a problémára az alkalmazása az irányelv #include_next ", mellyel csatlakozni egy fájlt ugyanazzal a névvel. Ez az irányelv alapján is képes működni, mint az irányelv „#include” kivéve keressük meg a kívánt fájlt. Úgy kezdődik, hogy keressen egy listát a csomagban található fájlok könyvtárak után a könyvtárba, ahol a jelenlegi fájlt talált.

Tegyük opció '-I / usr / local / include' van megadva, és a könyvtárak listájához kíván tartalmazhat '/ usr / include'. Feltételezzük, hogy mindkét könyvtárat tartalmaz a fájl neve „sys / signal.h”. Az irányelv „#include „Keressük meg a kívánt fájlt a könyvtárban” / usr / local / include”. Ha a fájl tartalmazza a „#include_next „Akkor a keresés lesz folytatható, miután a korábbi könyvtár és a fájl található a könyvtárban” / usr / include”.