Direktivy preprocesoru
Direktivy preprocesoru, například #define
a #ifdef
, se obvykle používají k usnadnění změn zdrojových programů a snadné kompilaci v různých spouštěcích prostředích. Direktivy ve zdrojovém souboru říkají preprocesoru, aby podnikl konkrétní akce. Preprocesor může například nahradit tokeny v textu, vložit obsah jiných souborů do zdrojového souboru nebo potlačit kompilaci části souboru odebráním oddílů textu. Před rozšířením makra se rozpoznají a provádějí čáry preprocesoru. Pokud se tedy makro rozšíří do něčeho, co vypadá jako příkaz preprocesoru, preprocesor ho nerozpozná.
Příkazy preprocesoru používají stejnou znakovou sadu jako příkazy zdrojového souboru s výjimkou, že řídicí sekvence nejsou podporovány. Znaková sada použitá v příkazech preprocesoru je stejná jako spouštěcí znaková sada. Preprocesor také rozpozná záporné hodnoty znaků.
Preprocesor rozpozná následující direktivy:
Znak čísla (#
) musí být první znak mezery na řádku obsahující direktivu. Mezi znaménkem čísla a prvním písmenem direktivy se můžou objevit prázdné znaky. Některé direktivy zahrnují argumenty nebo hodnoty. Jakýkoli text, který následuje za direktivou (s výjimkou argumentu nebo hodnoty, která je součástí direktivy), musí předcházet oddělovač komentářů s jedním řádkem (//
) nebo uzavřený v oddělovači komentářů (/* */
). Řádky obsahující direktivy preprocesoru lze pokračovat bezprostředně před značkou konce řádku pomocí zpětného lomítka (\
).
Direktivy preprocesoru se mohou objevit kdekoli ve zdrojovém souboru, ale po zobrazení se vztahují pouze na zbytek zdrojového souboru.
Viz také
Operátory preprocesoru
Předdefinovaná makra
Referenční dokumentace preprocesoru c/c++