Programozzunk Együtt!
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.
2001. április 11., szerda 16:36