Makro (software): Porovnání verzí

Smazaný obsah Přidaný obsah
m typografické úpravy
m typografické úpravy
Řádek 7:
V programovacích jazycích ([[C (programovací jazyk)|jazyk C]] nebo [[C++]]) jsou makra nepostradatelnou pomůckou, která je implementována na úrovni [[Preprocesor jazyka C|preprocesoru jazyka C]] (cpp). Makra slouží k definování symbolů využitelných při podmíněném překladu, ale i k definování komplikovaných sekvencí, které jsou následně volány v&nbsp;zápisu [[Zdrojový kód|zdrojového kódu]]. Výhodou maker je, že jejich předefinováním se při překladu zdrojového kódu automaticky zamění všechny jejich výskyty, což minimalizuje chyby, které by přinesly mnohanásobné editace kódu.<ref>{{Citace periodika | příjmení = Greenwald | jméno = Irwin D. | coauthors = Maureen Kane | titul = The Share 709 System: Programming and Modification | periodikum = Journal of the ACM | ročník = 6 | číslo = 2 | strany = 128–133 | vydavatel = ACM | místo = New York, NY, USA | datum vydání = April 1959 | url = http://doi.acm.org/10.1145/320964.320967 | formát = [[Portable Document Format|PDF]] | doi = 10.1145/320964.320967 <!--Retrieved from URL by DOI bot-->}} Quotation: "One of the important uses of programmer macros is to save time and clerical-type errors in writing sequence of instructions which are often repeated in the course of a program."</ref><ref>{{Citace periodika | příjmení = Strachey | jméno = Christopher | titul = A General Purpose Macrogenerator| periodikum = Computer Journal| ročník = 8 | číslo = 3 | strany = 225–241| datum=October 1965 | doi = 10.1093/comjnl/8.3.225}}</ref> Použití makra také může ušetřit režii spojenou s voláním funkce. Nevýhodou je slabší typová kontrola a případné vedlejší efekty při nesprávném použití maker. Z tohoto důvodu se doporučuje upřednostňovat před makry inline-funkce.
 
Makra jsou texty, které se dají představit jako [[Zdrojový kód|zdrojové kódy]]. Ovšem jako se [[Zdrojový kód|zdrojovými kódy]] se s nimi pracuje až po zpracování [[Preprocesor|preprocesoru]]. V mnoha implementacích cC-jazyka je [[preprocesor]] C-jazyka implementován jako samostatný program, v operačním systému [[Linux|Linux]] jej lze obvykle volat pod názvem cpp (C Pre Processor). Tento program nahrazuje ve zdrojovém kóduidentifikátor makra jeho obsahem, tj. rozvojem textu makra. Při rozvoji makra se v&nbsp;textu makra provádí substituce formálních parametrů makra za texty uvedené v závorce při volání makra.
 
[[Preprocesor]] je volán [[překladač|překladačem]], nebo je přímo jeho součástí. [[Preprocesor]] odstraní ze zdrojového kódu komentáře a nahradí makra, které jsou ve zdrojovém kódu. Například když zapíšete do [[Zdrojový kód|zdrojového kódu]] <code>#include <stdio.h></code>, pak [[preprocesor]] vloží na místo tohoto řádku [[Hlavičkový soubor|hlavička]] standardní [[Knihovna (programování)|knihovny]] <code><stdio.h></code>. Všechny direktivy [[Preprocesor|preprocesoru]] C-jazyka začínají znakem #.