Irányelv feltételes fordítás

Számos irányelvek adnak arra, hogy szelektíven összeállítani a forráskód részeit a program. Ezt a folyamatot nevezzük feltételes fordítási és széles körben használják a cégek, akik élnek rovására kereskedelmi szoftver - akik a kínálat és támogat sok különleges változatait ugyanaz a program.







Irányelvek #if, #else, #elif és #endif

Talán a leggyakoribb feltételes fordítási direktívák #ha. #else. #elif és #endif. Ezek lehetővé teszik, attól függően, hogy a konstans értékét kifejezést vagy kizárhat bizonyos részein a kódot.

Általában a #ha irányelv az alábbiak szerint:

Ha mögött #ha állandó kifejezés igaz, a lefordított kód, amely között ezt a kifejezést, és #endif. Ellenkező esetben a köztes kódot kimarad. #endif #if direktíva jelzi az a mondat végén. Például,

Ez a program egy üzenetet jelenít meg a képernyőn, mert több, mint MAX 99. Ez a példa azt mutatja, valami nagyon fontos. Az a kifejezés értékét, amely túl van a #ha irányelvet. Meg kell értékelni fordításkor. Ezért csak a korábban megadott azonosítók és állandók lehet azonos feltételek mellett - de nem változók.

#else irányelv dolgozik főként mást - ez a kulcsszó a C: Meghatározza alternatívája az esetben, ha a feltétel nem teljesül #ha. Az előző példa lehet egészíteni a következők szerint:







Ebben az esetben úgy tűnik, hogy a MAX kevesebb, mint 99, így része a kódexéről #ha. Nem összeállítani. Azonban más összeállított kód, amely releváns a #else. és összeállította a program megjeleníti az üzenet összeállítani egy kis tömb.

Felhívjuk figyelmét, hogy a #else irányelv azonosítására használt és végén a #ha blokk. #else és az elején blokk. Ez természetes, hiszen minden #ha irányelv csak egyetlen #endif irányelvet.

Irányelv #elif azt jelenti, „else if” és a készletek a különböző összeállítási lehetőségek a lánc if-else-if. Miután #elif állandó kifejezés. Ha ez a kifejezés igaz, akkor úgy összeállítani neki egy kódrészletet, és nem ellenőrizte a többi kifejezést #elif. Ellenkező esetben a következő blokk van jelölve ez a sorozat. A #elif általános formája úgy néz ki, mint ez:

Például a következő részletben határozza meg a pénznem szimbólumát ACTIVE_COUNTRY érték (egyes országokban):

A szabvány szerint a S89 és #elif #ha irányelvek lehet 8 szint fészkel. Összhangban és a standard C99 programozók használhatják nem kevesebb, mint 63 fészkelő szinten. Amikor fészkelő minden egyes irányelv #endif. #else vagy #elif utal, hogy a legközelebbi irányelv #ha vagy #elif. Például az a helyes, a következő kódot:

#ifdef és #ifndef irányelvek

Egy másik módja a feltételes fordítási - az, hogy az irányelvek #ifdef és #ifndef. amelyek rendre képviselik „ha definiált” (ha meghatározott) és a „ha nem definiált” (hacsak speciálisan meghatározott). Általában a #ifdef a következő:

egy blokk kód lesz lefordítva, ha a makró nevét már korábban meghatározott #define nyilatkozatot.

Általában az üzemeltető #ifndef a következő:

egy blokk kód lesz lefordítva, ha a makró nevét még nem határozták meg a #define nyilatkozatot.

És #ifdef. és #ifndef, akkor az üzemeltető #else vagy #elif. Például,

hogy Szia, Ted. és Ralph nem definiált, beleértve Ralph nem volt szerencséje.




Kapcsolódó cikkek