/D (プリプロセッサの定義)/D (Preprocessor Definitions)

ソース ファイルのプリプロセッサ シンボルを定義します。Defines a preprocessing symbol for a source file.

構文Syntax

/Dname[= | # [{string | number}] ]

RemarksRemarks

このシンボルを #if または #ifdef と一緒に使用すると、ソース コードを条件付きでコンパイルできます。You can use this symbol together with #if or #ifdef to compile source code conditionally. シンボル定義は、コードで再定義されるまで、または #undef ディレクティブによってコードで未定義になるまで有効です。The symbol definition remains in effect until it is redefined in the code or is undefined in the code by the #undef directive.

/Dと同じ効果があります、#define点を除いて、ソース コード ファイルの先頭にディレクティブ /Dコマンドラインの引用符を削除し、#defineそれらを保持します。/D has the same effect as the #define directive at the beginning of a source code file, except that /D strips quotation marks on the command line and #define retains them.

既定では、シンボルに関連付けられる値は 1 です。By default, the value associated with a symbol is 1. たとえば、 /D nameと等価 /Dname= 1します。For example, /Dname is equivalent to /Dname=1. この記事では、定義の最後の例ではテストを印刷するには、1します。In the example at the end of this article, the definition of TEST is shown to print 1.

使用してコンパイル /D name = と関連付けられている値がないシンボル。Compiling by using /Dname= causes the symbol to have no associated value. シンボルは引き続きコードの条件コンパイルに使用できますが、何も指定されていないものとして評価されます。Although the symbol can still be used to conditionally compile code, it otherwise evaluates to nothing. 使用してコンパイルする場合の例で /DTEST = エラーが発生します。In the example, if you compile by using /DTEST=, an error occurs. この動作は、値を指定して、または値を指定せずに #define を使用する場合と似ています。This behavior resembles the use of #define with or without a value.

次のコマンドを実行すると、TEST.c で DEBUG シンボルが定義されます。This command defines the symbol DEBUG in TEST.c:

CL/DDEBUG をテストします。CCL /DDEBUG TEST.C

次のコマンドを実行すると、TEST.c からすべての __far キーワードが削除されます。This command removes all occurrences of the keyword __far in TEST.c:

CL /D__far= TEST.CCL /D__far= TEST.C

CL環境変数は、等号 (=) を含む文字列に設定することはできません。The CL environment variable cannot be set to a string that contains the equal sign. 使用する /Dと共に、 CL環境変数を指定してください、等号 (=) ではなくシャープ記号。To use /D together with the CL environment variable, you must specify the number sign instead of the equal sign:

SET CL=/DTEST#0

コマンド プロンプトでプリプロセッサ シンボルを定義する場合は、コンパイラ解析規則とシェル解析規則の両方を考慮してください。When you define a preprocessing symbol at the command prompt, consider both compiler parsing rules and shell parsing rules. たとえば、パーセント記号のプリプロセッサ シンボル (%) を定義するにはプログラムでは、パーセント記号 2 文字 (%) を指定しますコマンド プロンプト。1 つだけを指定する場合は、解析エラーが生成されます。For example, to define a percent-sign preprocessing symbol (%) in your program, specify two percent-sign characters (%%) at the command prompt: If you specify only one, a parsing error is emitted.

CL /DTEST=%% TEST.C

Visual Studio 開発環境において、このコンパイラ オプションを設定する方法To set this compiler option in the Visual Studio development environment

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。Open the project Property Pages dialog box. 詳細については、次を参照してください。 Visual Studio での設定の C++ コンパイラとビルド プロパティします。For more information, see Set C++ compiler and build properties in Visual Studio.

  2. 左側のウィンドウで次のように選択します。構成プロパティc/c++プリプロセッサします。In the left pane, select Configuration Properties, C/C++, Preprocessor.

  3. 右側の列の右側のウィンドウで、プリプロセッサの定義プロパティ、ドロップダウン メニューを開き、選択編集します。In the right pane, in the right-hand column of the Preprocessor Definitions property, open the drop-down menu and choose Edit.

  4. プリプロセッサの定義ダイアログ ボックスで、(1 行につき 1 つ) を追加、変更、または 1 つまたは複数の定義を削除します。In the Preprocessor Definitions dialog box, add (one per line), modify, or delete one or more definitions. OK を選択して変更を保存してください。Choose OK to save your changes.

このコンパイラ オプションをコードから設定するにはTo set this compiler option programmatically

Example

// cpp_D_compiler_option.cpp
// compile with: /DTEST
#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

関連項目See also

MSVC コンパイラ オプションMSVC Compiler Options
MSVC コンパイラ コマンド ラインの構文MSVC Compiler Command-Line Syntax
/U、/u (定義済みマクロ シンボルの未定義化)/U, /u (Undefine Symbols)
#undef ディレクティブ (C/C++)#undef Directive (C/C++)
#define ディレクティブ (C/C++)#define Directive (C/C++)