Sdílet prostřednictvím


#Line směrnice (C/C++)

#line Říká směrnice preprocesoru změnit interně uložená kompilátoru číslo a název souboru na daném řádku číslo a název souboru.

#line digit-sequence ["filename"]

Poznámky

Kompilátor používá číslo řádku a volitelný název odkazuje na chyby, které nalezne během kompilace.Číslo řádku obvykle označuje aktuální vstupní řádek a název souboru odkazuje na aktuální vstupní soubor.Číslo řádku je zvýšen po zpracování každého řádku.

Pořadové číslice hodnota může být libovolný celočíselná konstanta.Náhradní makra lze provést na předzpracování tokeny, ale výsledek musí být správné syntaxe.Název souboru může být libovolná kombinace znaků a musí být uzavřeny v uvozovkách ("").Pokud název souboru je vynechán, předchozí název souboru zůstane beze změny.

Zdrojový řádek číslo a název souboru můžete změnit pomocí zápisu #line směrnice.Překladač používá k určení hodnoty předdefinovaných makra řádku číslo a název souboru __FILE__ a __LINE__.Tato makra můžete vložit do textu program self-descriptive chybové zprávy.Další informace o těchto předdefinovaných maker naleznete v Předdefinovaná makra.

__FILE__ makro rozšíří na řetězec, jehož obsah je název souboru ohraničena uvozovkami ("").

Pokud změníte číslo a název souboru, Kompilátor ignoruje předchozí hodnoty a pokračuje ve zpracování novými hodnotami.#line Směrnice je obvykle používán program generátory způsobit chybové zprávy odkázat na původní zdrojový soubor namísto generované programu.

Následující příklady ilustrují #line a __LINE__ a __FILE__ makra.

V tomto prohlášení číslo interně uložená řádku nastavena na 151 a název souboru se změní na copy.c.

#line 151 "copy.c"

Například makro ASSERT používá předdefinovaná makra __LINE__ a __FILE__ tisk chybová zpráva o zdrojovém souboru, pokud dané "výrazu" není pravda.

#define ASSERT(cond)

if( !(cond) )\
{printf( "assertion error line %d, file(%s)\n", \
__LINE__, __FILE__ );}

Viz také

Referenční dokumentace

Direktivy preprocesoru