Dyrektywy preprocesora
Dyrektywy preprocesora, takie jak #define
i #ifdef
, są zwykle używane w celu ułatwienia zmiany i łatwego kompilowania programów źródłowych w różnych środowiskach wykonywania. Dyrektywy w pliku źródłowym informują preprocesor o podjęciu określonych akcji. Na przykład preprocesor może zastąpić tokeny w tekście, wstawić zawartość innych plików do pliku źródłowego lub pominąć kompilację części pliku, usuwając sekcje tekstu. Linie preprocesora są rozpoznawane i wykonywane przed rozszerzeniem makra. W związku z tym jeśli makro rozszerza się na coś, co wygląda jak polecenie preprocesora, nie jest rozpoznawane przez preprocesor.
Instrukcje preprocesora używają tego samego zestawu znaków co instrukcje pliku źródłowego, z wyjątkiem, że sekwencje ucieczki nie są obsługiwane. Zestaw znaków używany w instrukcjach preprocesora jest taki sam jak zestaw znaków wykonywania. Preprocesor rozpoznaje również wartości znaków ujemnych.
Preprocesor rozpoznaje następujące dyrektywy:
Znak numeru (#
) musi być pierwszym znakiem niewzwiązanym z spacją w wierszu zawierającym dyrektywę. Znaki odstępu mogą pojawiać się między znakiem cyfry a pierwszą literą dyrektywy. Niektóre dyrektywy zawierają argumenty lub wartości. Każdy tekst zgodny z dyrektywą (z wyjątkiem argumentu lub wartości będącej częścią dyrektywy) musi być poprzedzony ogranicznikiem komentarza jednowierszowego (//
) lub ujęty w ograniczniki komentarzy (/* */
). Linie zawierające dyrektywy preprocesora mogą być kontynuowane bezpośrednio przed znacznikiem końca wiersza ukośnikiem odwrotnym (\
).
Dyrektywy preprocesora mogą pojawiać się w dowolnym miejscu w pliku źródłowym, ale mają zastosowanie tylko do pozostałej części pliku źródłowego po ich pojawieniu.
Zobacz też
Operatory preprocesora
Wstępnie zdefiniowane makra
Dokumentacja preprocesora c/c++