/D (definice preprocesoru)
Definuje symbol předzpracování pro zdrojový soubor.
Syntaxe
/D
[ ]name[=
|#
[{ řetězec | číslo }] ]
/D
[ ]"
name[=
|#
[{ řetězec | číslo }] ]"
Poznámky
Tento symbol můžete použít společně s zdrojovým kódem #if
nebo #ifdef
ho můžete podmíněně zkompilovat. Definice symbolu zůstává v platnosti, dokud není předdefinována v kódu nebo není definována v kódu direktivou #undef
.
/D
má stejný účinek jako direktiva #define
na začátku souboru zdrojového kódu. Rozdíl je v tom, že /D
na příkazovém řádku odstraní uvozovky a direktiva #define
je zachová. Mezi symbolem a symbolem můžete mít prázdné znaky /D
. Mezi symbolem a znaménkem rovná se nesmí být prázdné znaky ani mezi znaménkem rovná se a žádnou přiřazenou hodnotou.
K tomuto symbolu je standardně přidružena hodnota 1. Například /D name
je ekvivalentní s /D name=1
. V příkladu na konci tohoto článku je zobrazena definice TEST
je zobrazena k tisku 1
.
Kompilace pomocí příčin/D name=
, že název symbolu nemá přidruženou hodnotu. Ačkoli lze tento symbol stále použít k podmíněné kompilaci kódu, nijak se nevyhodnotí. V příkladu, pokud zkompilujete pomocí /DTEST=
, dojde k chybě. Toto chování se podobá použití #define
s hodnotou nebo bez této hodnoty.
Tato /D
možnost nepodporuje definice maker podobných funkcím. Pokud chcete vložit definice, které nelze definovat na příkazovém řádku, zvažte možnost kompilátoru kompilátoru /FI
(Název vynuceného zahrnutí souboru ).
Vícekrát můžete na příkazovém řádku použít /D
k definování dalších symbolů. Pokud je stejný symbol definován více než jednou, použije se poslední definice.
Tento příkaz definuje symbol DEBUG v souboru TEST.c:
CL /DDEBUG TEST.C
Tento příkaz odebere všechny výskyty klíčového slova __far
v test.c:
CL /D __far= TEST.C
Proměnnou prostředí CL nelze nastavit na řetězec, který obsahuje znaménko rovná se. Pokud chcete použít /D
společně s proměnnou CL
prostředí, je nutné místo rovnítku zadat znaménko čísla (#
):
SET CL=/DTEST#0
Při definici symbolu předzpracování na příkazovém řádku pamatujte jak na pravidla analýzy kompilátoru, tak na pravidla analýzy prostředí. Pokud chcete například definovat symbol předběžného zpracování procenta (%
) v programu, zadejte dva znaky znaku procenta (%%
) na příkazovém řádku. Pokud zadáte jenom jednu, vygeneruje se chyba analýzy.
CL /DTEST=%% TEST.C
Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio
Otevřete dialogové okno Stránky vlastností projektu. Další informace naleznete v tématu Nastavení kompilátoru jazyka C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností konfigurace>C/C++>Preprocessor.
Otevřete rozevírací nabídku vlastnosti Definice preprocesoru a zvolte Upravit.
V dialogovém okně Definice preprocesoru přidejte, upravte nebo odstraňte jednu nebo více definic na řádek. Kliknutím na OK uložte provedené změny.
Předponu možnosti /D nemusíte v definicích, které tady zadáte, zahrnout. Na stránce vlastností jsou definice oddělené středníky (
;
).
Programové nastavení tohoto parametru kompilátoru
- Viz třída PreprocessorDefinitions.
Příklad
// cpp_D_compiler_option.cpp
// compile with: cl /EHsc /DTEST cpp_D_compiler_option.cpp
#include <stdio.h>
int main( )
{
#ifdef TEST
printf_s("TEST defined %d\n", TEST);
#else
printf_s("TEST not defined\n");
#endif
}
TEST defined 1
Viz také
Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC
/FI
(Název vynucené zahrnutí souboru)
/U
, /u
(nedefinovat symboly)
#undef
Direktiva (C/C++)
#define
Direktiva (C/C++)