/U、/u (シンボルの未定義化)

/U コンパイラ オプションは、指定されたプリプロセッサ シンボルの定義を解除します。 /u コンパイラ オプションは、コンパイラで定義されている Microsoft 固有のシンボルの定義を解除します。

構文

/U[ ]symbol
/u

引数

記号
定義を解除するプリプロセッサ シンボル。

解説

/U/u のいずれのオプションも、#define ディレクティブを使用して作成したシンボルの定義を解除することはできません。

/U オプションは、以前に /D オプションを使用して定義したシンボルを未定義にすることができます。

既定では、コンパイラは多くの Microsoft 固有のシンボルを定義できます。 いくつかの一般的な例を次に示します。

記号 機能
_CHAR_UNSIGNED 既定の char 型は符号なしです。 /J オプションを指定している場合に定義されます。
_CPPRTTI /GR オプションを使用してコンパイルされたコードに対して定義されます。
_CPPUNWIND /EHsc オプションを使用してコンパイルされたコードに対して定義されます。
_DLL /MD オプションを指定している場合に定義されます。
_M_IX86 既定では、x86 ターゲットの場合は 600 に定義されます。
_MSC_VER コンパイラのバージョンごとに一意の整数値として定義されます。 詳細については、「定義済みマクロ」を参照してください。
_WIN32 WIN32 アプリケーション用に定義されます。 これは、常に定義されます。
_MT /MD または /MT オプションを指定している場合に定義されます。

Microsoft 固有の定義済みマクロの完全な一覧については、「定義済みマクロ」を参照してください。

Visual Studio 開発環境でこのコンパイラ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  2. [構成プロパティ]>[C/C++]>[詳細] プロパティ ページを選択します。

  3. [プリプロセッサ定義の解除] または [すべてのプリプロセッサ定義の解除] プロパティを修正します。

このコンパイラ オプションをコードから設定するには

関連項目

MSVC コンパイラ オプション
MSVC コンパイラのコマンド ライン構文
/J (既定の char 型が符号なし)
/GR (ランタイム型情報を有効にする)
/EH (例外処理モデル)
/MD/MT/LD (ランタイム ライブラリの使用)