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.

Kapcsolódó cikkek