dyrektywa #undef (C/C++)
Usuwa (niezdefiniowane) nazwę wcześniej utworzoną za pomocą #define
polecenia .
Składnia
identyfikator #undef
Uwagi
Dyrektywa #undef usuwa bieżącą definicję identyfikatora. W związku z tym kolejne wystąpienia identyfikatora są ignorowane przez preprocesor. Aby usunąć definicję makra przy użyciu #undef, podaj tylko identyfikator makra, a nie listę parametrów.
Można również zastosować dyrektywę #undef do identyfikatora, który nie ma poprzedniej definicji. Gwarantuje to, że identyfikator jest niezdefiniowany. Zamiana makr nie jest wykonywana w instrukcjach #undef .
Dyrektywa #undef jest zwykle połączona z dyrektywą #define
w celu utworzenia regionu w programie źródłowym, w którym identyfikator ma specjalne znaczenie. Na przykład określona funkcja programu źródłowego może używać stałych manifestu do definiowania wartości specyficznych dla środowiska, które nie mają wpływu na pozostałą część programu. Dyrektywa #undef współpracuje również z dyrektywą #if
w celu kontrolowania kompilacji warunkowej programu źródłowego. Aby uzyskać więcej informacji, zobacz dyrektywy #if, #elif, #else i #endif.
W poniższym przykładzie dyrektywa #undef usuwa definicje stałej symbolicznej i makra. Należy pamiętać, że podano tylko identyfikator makra.
#define WIDTH 80
#define ADD( X, Y ) ((X) + (Y))
.
.
.
#undef WIDTH
#undef ADD
Specyficzne dla firmy Microsoft
Makra mogą być niezdefiniowane z wiersza polecenia przy użyciu /U
opcji , a następnie nazwy makr, które mają być niezdefiniowane. Efekt wystawienia tego polecenia jest odpowiednikiem sekwencji instrukcji #undef
macro-name na początku pliku.
END Microsoft Specific