Hledejte v chronologicky řazené databázi studijních materiálů (starší / novější příspěvky).

6. Direktivy preprocesoru, předdefinované konstanty, makroinstrukce, vložení jednoho souboru do jiného.

Preprocesor jazyka C
Preprocesor ještě před samotným překladem zdrojový soubor upraví a teprve upravený soubor je předán překladači. Mezi úpravy, které preprocesor provádí se řadí především substituce textu, odstraňování komentářů a podmíněný překlad.

Činnost preprocesoru řídíme pomocí tzv. direktiv preprocesoru. Každá direktiva je uvozena znakem ‚#’, který musí být uveden hned jako první znak na řádku. Tak určíme, že zbytek řádku je určen preprocesoru a zápisy v něm se tedy řídí jeho syntaktickými pravidly.

Direktiva #include
#include
nebo
#include "soubor"

Pokud preprocesor narazí na výskyt direktivy #include, nahradí ji obsahem určeného souboru. To se nejčastěji používá pro vkládání tzv. hlavičkových souborů s deklaracemi funkcí apod., nebo přímo jiných zdrojových souborů C++. Pokud použijeme zápis se závorkami(<>) a nespecifikujeme úplnou cestu k souboru, bude soubor hledán ve standardním adresáři pro ukládání hlavičkových souborů. Použijeme-li zápis s uvozovkami, bude soubor hledán nejdříve v adresáři se zdrojovým souborem a pak teprve v adresáři s hlavičkovými soubory.

Direktiva #define
#define identifikátor_makra text_makra
Tato direktiva se používá pro vytváření tzv. maker. Použitím této direktivy říkáme preprocesoru, aby každý následující výskyt identifikátoru makra ve zdrojovém souboru nahradil textem makra. Text makra začíná přesně po první mezeře po identifikátoru makra. Pokud tedy oddělíme identifikátor a text makra více mezerami, bude pouze první považována za oddělovač a ostatní znaky budou patřit textu makra.

Příklad:
#define PI 3.141592653
#define PI2 (2*PI)
#define MAX 2+PI
V textu makra se mohou vyskytovat jiné již dříve nadefinované identifikátory maker.

Žádné komentáře:

Okomentovat