Preprocesor jazyka C: Porovnání verzí

Smazaný obsah Přidaný obsah
Doplnění Speciálních maker
Řádek 136:
=== Speciální makra a direktivy ===
Preprocesor jazyka C obsahuje speciální předdefinované [[Makro (software)|makra]], které můžou být použita aniž by byla někde definována. Mezi standardní předdefinovaná makra patří například <code>__FILE__</code> a <code>__LINE__</code>, které jsou preprocesorem rozepsána na aktuální název souboru a číslo řádku. Tyto makra najdou využití například ve výpisu chybových či vývojových zpráv:
 
fprintf (stderr, "Internal error: Zaporna delka retezce %d v souboru %s, na radku %d.", length, __FILE__, __LINE__);
 
S hodnotami maker <code>__FILE__</code> i <code>__LINE__</code> můžeme manipulovat pomocí direktivy <code>#line</code>. Direktiva <code>#line</code> určuje číslo řádku a název souboru následujícího řádku, před kterým je definována. Například:
 
#line 314 "soubor.c"
printf("radek=%d soubor=%s\n", __LINE__, __FILE__);
 
vygeneruje následující:
 
printf("radek=%d soubor=%s\n", 314, "soubor.c");
 
Mezi další standardní makra patří třeba také <code>__DATE__</code> pro aktuální datum a <code>__TIME__</code> pro aktuální čas.
 
Více informací o předdefinovaných makrech lze nalézt v [[Angličtina|anglickém jazyce]] napříkladonline dokumentaci.<ref>[https://gcc.gnu.org/onlinedocs/cpp/Predefined-Macros.html zdeDokumentace předdefinovaných maker].</ref>
 
=== Ustálené zvyklosti ===