CyberPress.Sopron

(http://www.cyberpress.hu/)

Rovat: Dr. Bit

2001. április 11., szerda 16:36


Programozzunk Együtt!

A preprocesszor programozása II.

A preprocesszor programozása II.



A
#define paranccsal létrehozott állandóhoz hasonlóan az adott fordítótól függően a következő konstansok
is elérhetők:

__LINE__ - Az aktuális forrásállomány feldolgozás alatt álló sorának a száma

__FILE__ - Az aktuális forrásállomány elérési útját tartalmazó konstans

__DATE__ - A feldolgozás kezdetének dátuma

__TIME__ - A feldolgozás kezdetének időpontja

__STDC__ - 1-es értékkel van definiálva, ha a fordító csak az ANSI által rögzített
utasítások értelmezésére (ANSI keywords only) van állítva.

Fordítási hibaüzenet generálása:


Ennek akkor lehet értelme, ha egy programot forráskódként adunk tovább, és a fordítása csak bizonyos rendszeren,
módon történhet. Nézzünk egy példát: Ha például egy olyan utasítás is szerepel a kódban, amit csak, mondjuk, egy
Borland/Inprise compiler ismer, akkor a következő kódrészlet egy más fordítóval való fordítás során le fogja
állítani a feldolgozást, és egy hibaüzenetet jelenít meg:

#if __STDC__==1
#error --- Error: Cannot be compiled with standard C compiler ---
#endif



Feltételes fordítás:


Lehetőségünk van a feltételes fordításra is: ekkor is az '#if', '#elif', '#endif' és '#endif' utasításokat
lehet használni. Tehát:


#if feltétel1

>feltétel1 teljesülése esetén lefordítandó programrész<

#elif feltétel2

>feltétel2 teljesülése esetén lefordítandó programrész<

#else

>Egyébként lefordítandó programrész<

#endif



Nos, ezek voltak a A preprocesszor programozása legfontosabb utasításai. Természetesen lehet még jópár, de
azok az adott fordítótól függenek. Ezeknek minden ANSI C/C++ kompatibilis rendszerben meg kell(ene) lenniük.