Udostępnij za pośrednictwem


Dyrektywy preprocesora

Dyrektywy preprocesora, takie jak #define i #ifdef, są zazwyczaj używane do ułatwienia wprowadzania zmian oraz prowadzenia łatwej kompilacji w programach źródłowych w różnych środowiskach wykonawczych.Dyrektywy w pliku źródłowym każą preprocesorowi wykonać określone czynności.Na przykład preprocesor można zamienić tokeny w tekście, wstawić zawartość innych plików do pliku źródłowego lub zatrzymać kompilację części pliku poprzez usunięcie fragmentów tekstu.Linie preprocesora są rozpoznawane i przeprowadzane przed rozwinięciem makra.Tym samym, jeżeli makro rozszerzy się na coś, co przypomina polecenie preprocesora, to polecenie nie zostanie rozpoznane przez preprocesor.

Instrukcje preprocesora używają ten sam zestaw znaków jak instrukcje pliku źródłowego, z wyjątkiem tego, że nie obsługują sekwencji ucieczki.Zestaw znaków używanych w instrukcjach preprocesora jest taki sam, jak zestaw znaków wykonania.Preprocesor rozpoznaje również ujemne wartości.

Preprocesor rozpoznaje poniższe dyrektywy:

#definije

#błąd

#importuj

#undef

#elif

#jeśli

#dołącz

#używanie

#else

#ifdef

#wiersz

#endif

#ifndef

#pragma

 

Znak liczbowy (#) musi być pierwszym niebiałym znakiem w wierszu zawierającym dyrektywę; znaki białe mogą występować między znakiem liczby i pierwszą literą dyrektywy.Niektóre dyrektywy zawierają argumenty lub wartości.Dowolny tekst występujący po dyrektywie (chyba że argument lub wartość, która jest częścią dyrektywy) musi być poprzedzona ogranicznikiem komentaraz jednowierszowego (//) lub ujęta w ograniczniki komentarza (/ * * /).Wiersze zawierające dyrektywy preprocesora mogą być kontynuowane przez natychmiastowe postawienie przed znacznikiem końca wiersza znaku ukośnika odwrotnego (\).

Dyrektywy preprocesora mogą występować w dowolnym miejscu pliku źródłowego, ale mają zastosowanie tylko do pozostałej części pliku źródłowego.

Zobacz też

Informacje

Operatory preprocesora

Wstępnie zdefiniowane makra

Inne zasoby

Odwołania preprocesora języka C/C++