定義済みマクロ
定義済み ANSI Microsoft C および C++ の実装のマクロに示します。
コンパイラは、定義済みの ANSI C のマクロを確認し、Microsoft C++ の実装では、複数の多くを提供します。これらのマクロは、引数を受け取らず、再定義できません。次に示す複数の値と定義済みマクロのいくつかが定義されます。詳細については、次の表を参照してください。
ANSI 準拠の定義済みマクロ
マクロ |
説明 |
---|---|
__DATE__ |
現在のソース ファイルのコンパイルの日付。日付はフォーム yyyy Mmm ddリテラル文字列です。月の名前 [MMM 月] はと TIME.H. で宣言されたライブラリ関数 asctime によって生成される日付を同じです。 |
__FILE__ |
現在のソース ファイルの名前。__FILE__ は二重引用符で囲んだ文字列に配置します。ファイルへの完全パスが表示されていることを確認するには、/FC (診断時のソース コード ファイルの完全パス)を使用します。 |
__LINE__ |
現在のソース ファイルの行番号。行番号は 10 進整数定数です。これは #line のディレクティブに変更できます。 |
__STDC__ |
ANSI C 規格と完全に一致することを示します。/Za のコンパイラ オプションが指定されると、整数定数が 1 と定義されて C++ コードをコンパイルするときだけ; は未定義です。 |
__TIME__ |
現在のソース ファイルの最新のコンパイル時間。時間はフォーム hh: mm: ssリテラル文字列です。 |
__TIMESTAMP__ |
Ddd と [日付] 曜日のフォーム Ddd Mmm の日付 hh: mm: yyyy "ためにリテラル文字列で表現される現在のソース ファイルが最後に変更された日時 1 から 31 までの整数です。 |
Microsoft 固有の組み込みマクロ
マクロ |
説明 |
---|---|
_ATL_VER |
ATL バージョンを定義します。 Visual Studio 2010 では、_ATL_VER 0x1000 はとして定義されます。 |
_CHAR_UNSIGNED |
既定の char の型が符号です。/J を指定した場合に定義されます。 |
__CLR_VER |
アプリケーションがコンパイルされるときに使用される共通言語ランタイムのバージョンを定義します。返される値は、次の形式です: Mmmbbbbb 指定項目
|
__cplusplus_cli |
/clr、/clr:pure、または /clr:safeでコンパイルした場合に定義されます。__cplusplus_cli の値は 200406 です。__cplusplus_cli は翻訳単位で有効になります。
|
__COUNTER__ |
ソース ファイルのソース ファイルまたは含まれるヘッダーに使用されるたびに 0 から開始し、1 を乗算する整数に配置します。__COUNTER__ は、プリコンパイル済みヘッダーの使用時に状態が保存されています。 次の例では、同じ型の 3 種類のオブジェクトの一意識別子を割り当てるには __COUNTER__ を使用します。 最初に、次のクラス定義とします。コンストラクターは、パラメーターとして整数を受け取ります。
Main には、アプリケーションに一意識別子のパラメーターとして __COUNTER__ を使用して型 exampleClassの 3 種類のオブジェクトを宣言します。
|
__cplusplus |
C++ プログラムのみに対して定義されます。 |
_CPPRTTI |
/GR でコンパイルしたコードに対して定義されます (ランタイムの型情報を有効にします)。 |
_CPPUNWIND |
/GX でコンパイルしたコードに対して定義されている例外処理を有効にします)。 |
_DEBUG |
|
_DLL |
/MD または /MDd (マルチスレッド DLL) を指定した場合に定義されます。 |
__FUNCDNAME__ |
関数だけで有効です。文字列と外側の関数の 装飾名 を定義します。 __FUNCDNAME__ は /EP または /P のコンパイラ オプションを使用すると配置されません。 次の例では __FUNCDNAME__、__FUNCSIG__と関数の情報を表示するに __FUNCTION__ のマクロを使用します。
|
__FUNCSIG__ |
関数だけで有効です。文字列と外側の関数のシグネチャを定義します。 __FUNCSIG__ は /EP または /P のコンパイラ オプションを使用すると配置されません。 64 ビット オペレーティング システムでは、呼び出し規約は、既定では、__cdecl です。 例については、「__FUNCDNAME__」を参照してください。 |
__FUNCTION__ |
関数だけで有効です。文字列と外側の関数の装飾名を定義します。 __FUNCTION__ は /EP または /P のコンパイラ オプションを使用すると配置されません。 例については、「__FUNCDNAME__」を参照してください。 |
_INTEGRAL_MAX_BITS |
整数型の最大サイズ (ビット) で報告されます。
|
_M_ALPHA |
サポートされなくなった () DEC Alpha プラットフォームに対して定義されます。 |
_M_AMD64 |
x64 プロセッサに対して定義されます。 |
_M_CEE |
/clr (/clr:oldSyntax、/clr:safe、たとえば) の形式を使用するコンパイルに対して定義されます。 |
_M_CEE_PURE |
/clr:pureを使用するコンパイルに対して定義されます。 |
_M_CEE_SAFE |
/clr:safeを使用するコンパイルに対して定義されます。 |
_M_IX86 |
x86 プロセッサに対して定義されます。詳細については、_M_IX86 の値 次の表を参照してください。これは、x64 プロセッサでは定義されていません。 |
_M_IA64 |
Itanium の Processor Family の 64 ビット プロセッサに対して定義されます。 |
_M_ARM_FP |
値の /arch のすべてのコンパイラ オプションが使用されているかともに配置します:
|
_M_IX86_FP |
値の /arch のすべてのコンパイラ オプションが使用されているかともに配置します:
|
_M_MPPC |
サポートされなくなった累乗 () の Macintosh プラットフォーム用に定義されます。 |
_M_MRX000 |
() はサポートされなく MIPS プラットフォーム用に定義されます。 |
_M_PPC |
サポートされなくなった ()、PowerPC プラットフォーム用に定義されます。 |
_M_X64 |
x64 プロセッサに対して定義されます。 |
_MANAGED |
/clr が指定されたとき 1 であると定義されます。 |
_MFC_VER |
MFC のバージョンを定義します。たとえば、Visual Studio 2010、_MFC_VER は 0x0A00 として定義されます。 |
_MSC_BUILD |
コンパイラのバージョン番号のリビジョン番号のコンポーネントになります。リビジョン番号はピリオドで区切られたバージョン番号の 4 番目のコンポーネントです。たとえば、Visual C++ コンパイラのバージョン番号が 15.00.20706.01 B の場合、_MSC_BUILD のマクロが 1. に評価されます。 |
_MSC_EXTENSIONS |
このマクロは /Ze のコンパイラ オプション (既定値) とコンパイル時に定義されます。この値は、定義した場合、1. です。 |
_MSC_FULL_VER |
コンパイラのバージョン番号のメジャー、マイナー、およびビルド番号のコンポーネントになります。主要な数は、ピリオドで区切られたバージョン番号の最初のコンポーネントで、マイナー番号が 2 番目のコンポーネントであり、ビルド番号は 3 番目のコンポーネントです。たとえば、Visual C++ コンパイラのバージョン番号が 15.00.20706.01 B の場合、_MSC_FULL_VER のマクロは 150020706 に評価されます。コンパイラのバージョン番号を表示するコマンド ラインで cl /? を入力します。 |
_MSC_VER |
コンパイラのバージョン番号のメジャー番号とマイナー番号コンポーネントになります。主要な数は、ピリオドで区切られたバージョン番号の最初のコンポーネントであり、マイナー番号が 2 番目のコンポーネントです。 たとえば、Visual C++ コンパイラのバージョン番号が 15.00.20706.01 B の場合、_MSC_VER のマクロは 1500 に評価されます。 Visual Studio 2010 では、_MSC_VER は 1600 として定義されます。 |
__MSVC_RUNTIME_CHECKS |
/RTC のコンパイラ オプションの 1 つが指定した場合に定義されます。 |
_MT |
/MD または /MDd (マルチスレッド DLL) または /MT または /MTd (マルチスレッド) を指定した場合に定義されます。 |
_NATIVE_WCHAR_T_DEFINED |
/Zc: wchar_t を使用する場合に定義されます。 |
_OPENMP |
/openmp の Visual C++ で実行する OpenMP 仕様の日付を表す整数を返すとコンパイル時に定義されます。
|
_VC_NODEFAULTLIB |
/Zl を使用する場合に定義されます; 詳細については、/Zl (既定のライブラリ名の省略) を参照してください。 |
_WCHAR_T_DEFINED |
/Zc: wchar_t を使用する場合、または wchar_t がプロジェクトに含まれているシステム ヘッダー ファイルで定義されている場合は定義されます。 |
_WIN32 |
Win32 および Win64 のアプリケーションに対して定義されます。これは、常に定義されます。 |
_WIN64 |
Win64 のアプリケーションに対して定義されます。 |
_Wp64 |
/Wp64を指定した場合に定義されます。 |
次の表に示すように、コンパイラは指定されたプロセッサが抽出されるプリプロセッサの識別子の値を生成します。
_M_IX86 の値
開発環境の選択 |
コマンド ライン オプション |
結果の値 |
---|---|---|
Expression Blend |
/GB |
(既定値_M_IX86 = 600。将来のコンパイラが最もプロセッサを反映する別の値を出力します)。 |
Pentium |
/G5 |
_M_IX86 = 500 |
II、Pentium Pro、Pentium、Pentium III |
/G6 |
_M_IX86 = 600 |
80386 |
/G3 |
_M_IX86 = 300 |
80486 |
/G4 |
_M_IX86 = 400 |