Egyéb irányelv #undef, #ha, #ifdef, #ifndef, #else és #endif
Tovább irányelv: #undef, #ha, #ifdef, #ifndef, #else és #endif
Ezek az irányelvek általában programozására nagyobb modulokat. Ezek lehetővé teszik, hogy függessze fel a korábbi definíciókat és létrehozhat fájlokat, amelyek mindegyike lehet összeállítani különböző módon.
#undef irányelv törli a legutóbbi meghatározása nevű makrót.
#undef BIG / * BIG nem definiált * /
#define HATALMAS 10 / * újra, mint egy hatalmas, 10 * /
#undef HATALMAS / * Hatalmas ismét egyenlő 5 * /
#undef HATALMAS / * HATALMAS nem definiált * /
Nyilván (reméljük), akkor nem állítanak össze a fájlt, mint ebben a példában. Tegyük fel, hogy van egy nagy fájlt szabvány által meghatározott irányelv #include. hogy szeretne használni, de néhány meghatározásokat kell átmenetileg változik az egyik a program funkcióit, ahelyett, hogy ezt a fájlt, akkor egyszerűen kapcsolja be, majd körül egy stand-out funkció megfelelő irányelvek #define és # undef.
Vagy tegyük fel, hogy dolgozik egy nagy szoftver rendszer. Ha szeretnénk beállítani makrókkal, de nem biztos, hogy a definíció egyéb célra meghatározásokat bármely más rendszer helyszíneken. Ebben az esetben egyszerűen törli a makrók olyan helyen, ahol ez már nincs szüksége, és az eredeti e makró, ha van ilyen, továbbra is érvényben marad az a rendszer többi részétől.
Egyéb contact említett irányelvek lehetővé teszik, hogy végre feltételes fordításra. Itt egy példa:
#include "horse.h" / * végre, ha MAVIS meghatározott * /
#define STABLES 5
#include "cow.h" / * végre, ha MAVIS nincs definiálva * /
#define istállók 15
#ifdef bekezdése kimondja, hogy ha egy későbbi azonosító (MAVIS) határozza meg a elpárologtató, majd az azt követő irányelvek, amíg az első megjelenése #else vagy #endif. Amikor a program #else. A #else hogy #endif program kerül végrehajtásra, ha az azonosító nincs definiálva.
Ez a szerkezet nagyon hasonló a szerkezete if-else a C nyelvet. A fő különbség az, hogy az elpárologtató nem ismeri fel a kapcsos zárójelek <>. jelölés a blokk, mert az a #else irányelv (ha van ilyen), és #endif (ami kell), hogy jelölje irányelvek blokkokat.
Ezek a feltételes konstrukciókat lehet ágyazva.
#ifdef és #if direktíva használható a #else és #endif ugyanúgy. #ifndef irányelv közvélemény-kutatások, függetlenül attól, hogy az azt követő azonosító bizonytalan; Ez az irányelv az ellentéte #ifdef. #if direktíva, amely inkább hasonlít egy normál üzemben, ha a C nyelvet. Majd egy állandó kifejezés, amely tekinthető igaz, ha az nem egyenlő nullával:
Egyik célja a használata „feltételes fordítási” -, hogy a program több mobil. Megváltoztatásával néhány kulcsfontosságú szereplő meghatározások a fájl elején, akkor különböző értékek és magában foglalja a különböző fájlok a különböző rendszerekben.
Ezek a rövid példák a meglepő képességüket Xi kifinomult és szigorúan ellenőrzik a program nyelve.