Sdílet prostřednictvím


/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

  1. 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.

  2. Vyberte stránku vlastností konfigurace>C/C++>Preprocessor.

  3. Otevřete rozevírací nabídku vlastnosti Definice preprocesoru a zvolte Upravit.

  4. 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

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++)