|
![]() | Podmφn∞n² p°eklad | ![]() | KompilaΦnφ direktivy a makra | Vloženφ programu do programu | ![]() |
Pomocφ direktivy define
lze definovat makra, tedy specifikovat, ₧e se v programu mß urΦit² identifikßtor nahrazovat jin²mi symboly. Direktiva ve tvaru:
#define ident rozvoj_makra
zp∙sobφ, ₧e od tohoto mφsta v programu se vÜechny v²skyty identifikßtoru ident nahradφ rozvojem makra, co₧ je posloupnost libovoln²ch symbol∙.
Definovat lze takΘ makro s parametry ve tvaru:
#define ident(par1, par2, ...) rozvoj_makra
V tomto p°φpad∞ se makro volß s parametry takto:
ident(sp1, sp2, ...)
a toto volßnφ se nahradφ rozvojem makra, v n∞m₧ se ka₧d² v²skyt par1 nahradφ sp1, v²skyt par2 nahradφ sp2 atd. P°i volßnφ makra je nutno uvΘst stejn² poΦet parametr∙, jako v definici makra.
V makrech se nerozliÜuje mezi velk²mi a mal²mi pφsmeny. Makra bez parametr∙ se pou₧φvajφ zejmΘna p°φ °φzenφ podmφn∞nΘho p°ekladu. Pro oznaΦovßnφ konstantnφch hodnot je vhodn∞jÜφ pou₧φvat mφsto nich deklarace konstant. Makra s parametry zjednoduÜujφ zßpis opakujφcφch se programov²ch konstrukcφ.
Definici makra lze kdykoli zm∞nit tak, ₧e se pou₧ije novß direktiva #define
pro stejn² identifikßtor. Definici lze zruÜit pomocφ direktivy:
#undef ident
P°φklad:
Budi₧ definovßno makro:
#define CHYBA(text) begin Info_box("Nastala chyba", text); halt end
Pokud v textu programu pou₧ijete zßpis:
if i<0 then CHYBA("Nep°φ
pustnß vstupnφ hodnota");
p°elo₧φ se jako zßpis:
if i<0 then begin Info_box("Nastala chyba", "Nep°φpustnß vstupnφ hodnota"); halt end;
P°eddefinovanß makra
V klientskΘm programovacφm jazyce jsou p°eddefinovßna tato makra:
_602SQL_
- hodnotou je °et∞zec obsahujφcφ Φφslo verze klienta 602SQL, nap°. "8.0". Pomocφ tΘto direktivy lze p°eklßdat program pro r∙znΘ verze 602SQL.
_LANGUAGE
_ - hodnotou je °et∞zec znak∙ obsahujφcφ nßzev zvolenΘho jazyka (jak jste si zvolili); pokud aplikace nenφ vφcejazyΦnß nebo pokud nenφ zvolen ₧ßdn² jazyk, pak je to prßzdn² °et∞zec
_WINBASE602_
- toto₧nΘ s makrem _602SQL_.
P°φklad:
#if _LANGUAGE_ = "english"
PrepocetNaPalce;
#elif _LANGUAGE_ = "cestina"
PrepocetNaMetry;
#endif
![]() | Podmφn∞n² p°eklad | ![]() | KompilaΦnφ direktivy a makra | Vloženφ programu do programu | ![]() |