Vordefinierte Makros
Listet die vordefinierten Makros ANSI C und Microsoft C++-Implementierung auf.
Der Compiler erkennt vordefinierte ANSI C-Makros und die Microsoft C++-Implementierung stellt mehrere mehr.Diese Makros nehmen keine Argumente und können nicht neu definiert werden.Einige der vorkompilierten Makros, die unten aufgeführt sind, werden mit mehreren Werten definiert.Siehe die folgenden Tabellen weitere Informationen.
ANSI-Kompatible vordefinierte Makros
Makro |
Description |
---|---|
__DATE__ |
Das Kompilierungsdatum der aktuellen Quelldatei.Das Datum ist ein Zeichenfolgenliteral des Formulars Mmm dd yyyy.Der Monatsname Mmm ist der gleiche wie für die Daten, die für die - asctime generiert werden, das in TIME.H. deklariert wird. |
__FILE__ |
Der Name der aktuellen Quelldatei.__FILE__ erweitert zu einer Zeichenfolge, die durch doppelte Anführungszeichen eingeschlossen wird.Um sicherzustellen dass der vollständige Pfad der Datei angezeigt wird, verwenden Sie /FC (Vollständiger Pfad der Quellcodedatei in Diagnostik). |
__LINE__ |
Die Zeilennummer in der aktuellen Quelldatei.Die Zeilennummer ist ein Dezimalzeichen ganzzahlige Konstante.Sie kann mit #line-Direktive geändert werden. |
__STDC__ |
Gibt vollständige Übereinstimmung mit dem Standard ANSI C an.Definiert als die ganzzahlige Konstante 1 nur wenn die /Za-Compileroption angegeben ist und Sie nicht kompiliert C++-Code; andernfalls wird nicht definiert. |
__TIME__ |
Die neueste Kompilierungszeit der aktuellen Quelldatei.Die Zeit ist ein Zeichenfolgenliteral des Formulars hh: mm: ss. |
__TIMESTAMP__ |
Das Datum und die Uhrzeit der letzten Änderung der aktuellen Quelldatei, ausgedrückt als Zeichenfolgenliteral in der Form Datum des DDD-Mmm hh: mm: ss yyyy, in der ddd der abgekürzte Wochentag und Datum ist, ist eine ganze Zahl von 1 bis 31. |
Microsoft-spezifische vordefinierte Makros
Makro |
Description |
---|---|
_ATL_VER |
Definiert die ATL-Version. In Visual Studio 2010, wird _ATL_VER als 0x1000 definiert. |
_CHAR_UNSIGNED |
Standard char-Typ ist ohne Vorzeichen.Definiert, wenn /J angegeben wird. |
__CLR_VER |
Definiert die verwendeten Version der Common Language Runtime, als die Anwendung kompiliert wurde.Der zurückgegebene Wert ist im folgenden Format: Mmmbbbbb Hierbei ist:
|
__cplusplus_cli |
Definiert, wenn Sie mit /clr, /clr:pure oder /clr:safe kompilieren.Wert von __cplusplus_cli ist 200406.__cplusplus_cli ist wirksam während der Übersetzungseinheit.
|
__COUNTER__ |
Erweitert auf eine ganze Zahl, die mit 0 startet und um 1 inkrementiert, wenn es in einer Quelldatei oder in der Quelldatei enthaltenen Headern verwendet wird.__COUNTER__ speichert an ihren Zustand, wenn Sie vorkompilierte Header verwendet werden. Im folgenden Beispiel wird __COUNTER__, um eindeutige Bezeichner auf drei verschiedenen Objekten des gleichen Typs zuzuweisen. Zunächst verwenden Sie die folgende Klassendefinition.Der Konstruktor akzeptiert eine ganze Zahl als Parameter.
In der Haupt- deklariert die Anwendung drei Objekte Typ exampleClass, mit __COUNTER__ als - Parameter des eindeutigen Bezeichners.
|
__cplusplus |
Definiert für nur C++-Programme. |
_CPPRTTI |
Definiert für Code kompiliert mit /GR (aktivieren Sie Laufzeit-Typeninformationen). |
_CPPUNWIND |
Definiert für Code kompiliert mit /GX (aktivieren Sie Ausnahmebehandlung). |
_DEBUG |
|
_DLL |
Definiert, wenn /MD oder /MDd Multi-threaded-DLL (DLL) angegeben wird. |
__FUNCDNAME__ |
Nur in einer Funktion.Definiert ergänzter Name der einschließenden Funktion als Zeichenfolge. __FUNCDNAME__ ist nicht erweitert, wenn Sie die /EP oder /P-Compileroption verwenden. Im folgenden Beispiel wird __FUNCDNAME__, __FUNCSIG__ und __FUNCTION__ Makros, um Funktionsinformationen anzuzeigen.
|
__FUNCSIG__ |
Nur in einer Funktion.Definiert die Signatur der einschließenden Funktion als Zeichenfolge. __FUNCSIG__ ist nicht erweitert, wenn Sie die /EP oder /P-Compileroption verwenden. Auf einem 64-Bit-Betriebssystem ist die Aufrufkonvention __cdecl standardmäßig. Ein Beispiel finden Sie unter __FUNCDNAME__. |
__FUNCTION__ |
Nur in einer Funktion.Definiert den nicht ergänzten Namen der einschließenden Funktion als Zeichenfolge. __FUNCTION__ ist nicht erweitert, wenn Sie die /EP oder /P-Compileroption verwenden. Ein Beispiel finden Sie unter __FUNCDNAME__. |
_INTEGRAL_MAX_BITS |
Zeigt die maximale Größe (in den Bits) für einen ganzzahligen Typ.
|
_M_ALPHA |
Definiert für ALPHAplattformen DEC (nicht mehr unterstützt). |
_M_AMD64 |
Definiert für x64-Prozessoren. |
_M_CEE |
Definiert für eine Kompilierung, die jedes Formular von /clr verwendet (/clr:oldSyntax, /clr:safe). |
_M_CEE_PURE |
Definiert für eine Kompilierung, die /clr:pure verwendet. |
_M_CEE_SAFE |
Definiert für eine Kompilierung, die /clr:safe verwendet. |
_M_IX86 |
Definiert für x86-Prozessoren.Siehe die Werte für _M_IX86 Tabelle unten weitere Informationen.Dies wird nicht für x64-Prozessoren definiert. |
_M_IA64 |
Definiert für Itanium Prozessor-Familien64-bit-Prozessoren. |
_M_ARM_FP |
Erweitert den Wert ein angibt, das /arch-Compileroption verwendet wurde:
|
_M_IX86_FP |
Erweitert den Wert ein angibt, das /arch-Compileroption verwendet wurde:
|
_M_MPPC |
Definiert für Power Macintosh-Plattformen (nicht mehr unterstützt). |
_M_MRX000 |
Definiert für MIPS-Plattformen (nicht mehr unterstützt). |
_M_PPC |
Definiert für PowerPC-Plattformen (nicht mehr unterstützt). |
_M_X64 |
Definiert für x64-Prozessoren. |
_MANAGED |
Definiert, um 1 zu werden, wenn /clr angegeben wird. |
_MFC_VER |
Definiert die MFC-Version.Beispielsweise in Visual Studio 2010, wird _MFC_VER als 0x0A00 definiert. |
_MSC_BUILD |
Ergibt zur Revisionsnummerenkomponente der Versionsnummer des Compilers aus.Die Revisionsnummer ist die vierte Komponente der durch Punkte getrennten Versionsnummer.Wenn die Versionsnummer des Visual C++-Compilers 15.00.20706.01 ist, ist das _MSC_BUILD Makro auf 1. aus. |
_MSC_EXTENSIONS |
Dieses Makro wird definiert, wenn Sie mit der Compileroption kompilieren /Ze (Standardeinstellung).Der Wert, wenn er definiert wurde, ist 1. |
_MSC_FULL_VER |
Ergibt den Haupt-, um geringfügig und zu den Buildnummerenkomponenten der Versionsnummer des Compilers aus.Die Zahl ist die erste Komponente der durch Punkte getrennten Versionsnummer, ist die kleine Zahl die zweite Komponente, die Buildnummer ist die dritte Komponente.Wenn die Versionsnummer des Visual C++-Compilers 15.00.20706.01 ist, ist das _MSC_FULL_VER Makro bis 150020706 aus.Geben Sie cl /? an der Befehlszeile ein, um die Versionsnummer des Compilers anzuzeigen. |
_MSC_VER |
Ergibt zu den Haupt- und Zahlenkomponenten der Versionsnummer des Compilers aus.Die Zahl ist die erste Komponente der durch Punkte getrennten Versionsnummer und die kleine Zahl ist die zweite Komponente. Wenn die Versionsnummer des Visual C++-Compilers 15.00.20706.01 ist, ist das _MSC_VER Makro bis 1500 aus. In Visual Studio 2010, wird _MSC_VER als 1600 definiert. |
__MSVC_RUNTIME_CHECKS |
Definiert, wenn eine der /RTC-Compileroptionen angegeben wird. |
_MT |
Definiert, wenn /MD oder /MDd Multi-threaded-DLL (DLL) oder /MT oder /MTd Multi-threaded-DLL () angegeben wurde. |
_NATIVE_WCHAR_T_DEFINED |
Definiert, wenn /Zc: wchar_t verwendet wird. |
_OPENMP |
Beim Kompilieren mit /openmp definiert, gibt ein die ganze Zahl, die das Datum der OpenMP-Spezifikation implementiert mit Visual C++ darstellt.
|
_VC_NODEFAULTLIB |
Definiert, wenn /Zl verwendet wird; /Zl (Kein Standardbibliotheksname) finden Sie weitere Informationen. |
_WCHAR_T_DEFINED |
Definiert, wenn /Zc: wchar_t verwendet wird, oder wenn wchar_t in einer Systemheaderdatei definiert ist, die im Projekt enthalten ist. |
_WIN32 |
Definiert für Anwendungen für Win32 und Win64.Immer definiert. |
_WIN64 |
Definiert für Anwendungen für Win64. |
_Wp64 |
Definiert, wenn /Wp64 angegeben wird. |
Wie in der folgenden Tabelle gezeigt generiert der Compiler einen Wert für die Präprozessorbezeichner, die die angegebene Prozessoroption entsprechen.
Werte für _M_IX86
Option in der Entwicklungsumgebung |
Befehlszeilenoption |
Ergebniswert |
---|---|---|
Übergang |
/GB |
_M_IX86 = 600 (Standardeinstellung.Zukünftige Compiler geben einen anderen Wert aus, um den bestimmenden Prozessor wiederzugeben.) |
Pentium |
/G5 |
_M_IX86 = 500 |
Pentium Pro, Pentium II und Pentium III |
/G6 |
_M_IX86 = 600 |
80386 |
/G3 |
_M_IX86 = 300 |
80486 |
/G4 |
_M_IX86 = 400 |