Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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++)