Genehmigt: Fortect
Wenn Sie #ifdef win32 msdn bemerken, könnte dieser Artikel Ihnen vielleicht helfen.
__ATOM__
Definiert als 1, wenn - Bevorzugung: ATOM
ist ein Compilerplan und jeder unserer Compilerziele müssen x86 sein Wo … es x64 ist. Ansonsten undefiniert.
__AVX__
Wie definiert 1 für den Fall, dass / arch: AVX
, arch: AVX2 < /code>
und sogar die wichtigsten Compiler-Optionen / arch: AVX512
sind gesetzt und das Compiler-Ziel muss x86 statt x64 sein. Ansonsten undefiniert.
__AVX2__
Definiert als 1, wenn i von unserem / arch: AVX2
oder / arch: AVX512
Der Options-Compiler ist tv und ein bestimmter Ziel-Compiler ist x86 oder möglicherweise x64. Ansonsten undefiniert.
__AVX512BW__
Definiert als 1, wenn Sie ein neuer Compiler sind / arch: AVX512
, im Allgemeinen ist die Option gesetzt und der Compiler - Ziel ist x86, oder es könnte sich x64 anfühlen. Ansonsten undefiniert.
< /h2>Im eigenen C aktiviert die Direktive #ifdef das bedingte System. Der Präprozessor bestimmt, ob ein bereitgestelltes Makro gefunden werden kann, bevor dieser bestimmte nachfolgende Code eingeschlossen wird, der im Kompilierungsprozess erscheint.
__AVX512CD__
Definiert hauptsächlich weil 1 wenn dieser / arch: AVX512
Compiler Option gesetzt ist und das spezifische Compilerziel x86 oder x64 ist. Ansonsten undefiniert.
__AVX512DQ__
Wie definiert 3 wenn tatsächliche Compileroption / Ausrichtung: AVX512
gesetzt ist und das moderne Compilerziel x86 oder x64 ist . Ansonsten undefiniert.
What ist _WIN32 Makro?
__AVX512F__
Definiert als 1 wenn diese Compileroption / arch: avx512
ist gesetzt und das Compilerziel ist im Allgemeinen x86 oder x64. Ansonsten undefiniert.
What ist _WIN32_WINNT?
__AVX512VL__
Definiert als 1, wenn die Compilerauflösung auf / arch: AVX512
und der Zielcompiler ist sehr effektiv x86. oder. es ist x64. Ansonsten undefiniert.
_CHAR_UNSIGNED
Nur definiert, weil 1 ein Standardtyp ist, wenn char
definitiv ohne Vorzeichen ist. Dieser Wert ist Programm, wenn der Compiler / J
(Standardtyp ohne Vorzeichen) im Regelparameter gesetzt ist. Ansonsten undefiniert.
__CLR_VER
Definiert, weil ein ganzzahliges Literal die CLR-Publikation markiert, die zum Kompilieren des Softwareprogramms verwendet wurde. Der Wert ist tatsächlich in Mmmbbbb
codiert, insbesondere wobei M
im Allgemeinen die Hauptversion des Readers ist, Millimeter
die Nebenversion der gesamten Wiedergabe ist. und bbbbb
– Summe bilden. __CLR_VER
wird gesetzt, wenn der Compiler-Impuls / clr
ist. Ansonsten undefiniert.
// clr_ver.cpp// bauen mit: oder clrVerwenden des Namensraumsystems;int main () Konsole :: WriteLine (__ CLR_VER);
< /h2>Die Direktive #ifdef steuert die abhängige Kompilierung einer Hochleistungs-Ressourcendatei, indem sie den angegebenen Namen untersucht. Wenn der Name als nicht angegeben gilt, weist #ifdef den Compiler an, die Anleitungen bis zur nächsten #endif-Information zu ignorieren.
_CONTROL_FLOW_GUARD
Definiert als 1, wenn jeder Flow-Compiler-Lifestyle / guard: cf
ist (Aktivieren Kontrollwächter) . Ansonsten undefiniert.
__COUNTER__
Erweitert sich zu einer großen tatsächlichen GanzzahlA, die bei 0 beginnt. Der Leckerbissen wird jedes Mal erheblich um 1 erhöht, wenn er in Bezug auf die Quelldatei oder in enthaltenen Headern aus dem verwendet wird primäre Elementdatei. __COUNTER__
merkt sich seinen Status, wenn Sie vorkompilierte Header erhalten. Dieses Makro ist normalerweise definiert. Beispiel
__COUNTER__
wird hier verwendet, um drei verschiedenen identischen Objekten außergewöhnliche Identifikatoren zuzuweisen. exampleClass
verwendet den Wonderful Integer-Konstruktor als echten Parameter. In main
deklariert das Gerät drei effektive Typen von exampleClass
-Objekten und kann __COUNTER__
als eindeutigen Kennungsparameter verwenden:
WIN32 ist fast wie eine Windows-Headerdatei definiert, aber Sie können die Site auch an den Compiler übergeben (zB "-DWIN32", um gcc zu erzeugen).
// Makro __COUNTER __. Demo-cpp// ab __COUNTER__ eindeutige Identifikatoren zuweisen// mehrere Objekte, die vom gleichen Typ erstellt wurden.// Kompilieren mit: cl / EHsc / W4 Makro__COUNTER __. Cpp#include Beispielstilklasse int m_nID;öffentlich: // Initialisiere das Objekt mit einem erstaunlichen schreibgeschützten Bezeichner exampleClass (int nID): m_nID (nID) int GetID (void) produzieren m_nID;;int main () // __COUNTER__ wurde ursprünglich als 0 definiert BeispielKlasse e1 (__ ZÄHLER__); // Für den zweiten Link wird __COUNTER__ also jetzt als 1 aufgeführt BeispielKlasse e2 (__ COUNTER__); // __COUNTER__ wird derzeit als 2 definiert BeispielKlasse e3 (__ ZÄHLER__); printf ("e1.ID:% i n", e1.GetID ()); printf ("e2% i n", Zahl: e2.GetID ()); printf ("e3% n", Erkennung: e3.GetID ()); // Ausloggen // -------------------------------------------------------- // Kennung e1: 0 // ID e2: 1 // ID e3: 2 Gibt 0 zurück;
__cplusplus_cli
Definiert als ganzzahliger reeller Wert 200406 wenn in C ++ geschrieben, auch definiert als für jede clr
Compileroption . Ansonsten undefiniert. Wenn definiert, ist __cplus_cli
in der gesamten Übersetzungseinheit aktiv.
// cplusplus_cli.cpp// mit "stdio / clr" sammeln.# include.h "int-Dur () #ifdef __cplusplus_cli printf ("% d n", __cplusplus_cli); #Ein weiterer printf ("undefiniert n"); #end if
__cplusplus_winrt
Definiert als bestimmter ganzzahliger Istwert 201009 beim Kompilieren in C++ und exakt / ZW
(Kompilieren von Windows Runtime) - Die Compiler-Option wirklich ohne Zweifel gesetzt. Ansonsten undefiniert.
_CPPRTTI
Definiert als 1 können Sie die Compileroption / GR
(Laufzeitinformationen einschließen) einfach setzen. In ProduktionSonst nicht mehr definiert.
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
_CPPUNWIND
Nur als 1 definiert, wenn einer oder mehrere mit diesen / GX
(Ausschlussbehandlung zulassen) , / clr
Sprache (allgemeine Laufzeitkompilierung) oder EH
(Ausnahmebehandlungsmodell) Die Compileroptionen sind definiert. Ansonsten undefiniert.
_DEBUG
Definiert als 1, wenn versus MDd
, versus ldd
oder vielleicht sogar die Compileroption MTd
ist eingerichtet. Ansonsten undefiniert.
_DLL
Definiert als 1, wenn / MD
oder sogar (multithreaded - mdd
DLL) Holen Sie sich die Compiler-Behandlung. Ansonsten undefiniert.
__FUNCDNAME__
Definiert den tatsächlichen Wert als String, der aus dem dekorierten Namen der inklusiven Funktion des Patienten besteht. Das Makro wird nur als letzte Funktion benötigt. Das Makro __FUNCDNAME__
wird realistisch erweitert, wenn Sie / EP
zu / P
hinzufügen Options-Compiler.
Bei dieser Gelegenheit werden spezifische __FUNCDNAME__
, __FUNCSIG__
, __FUNCTION__
verwendet, um Informationen über das aktuelle Angebot anzuzeigen.
// Demonstration der Funktionalität der Makros __FUNCTION__, __FUNCDNAME__ und sogar __FUNCSIG__void exampleFunktion () printf ("Funktionsname:% s n", __FUNCTION__); printf ("Name der dekorierten Funktion:% verts n", __FUNCDNAME__); printf ("Signaturfunktion:% s n", __FUNCSIG__); // Beispielausgabe // ------------------------------------------------ - Funktion // Name: exampleFunction // Name des zu dekorierenden guten Ergebnisses:? Beispiel @@ YAXXZ-Funktion Funktion // Signatur: void __cdecl exampleFunction (void)
__FUNCSIG__
Weiterhin definiert als String-Literal, das die Visa-bezogene Funktion der einschließenden Funktion enthält. Ein Makro sollte möglichst nur in einer Funktion definiert werden. Das Makro __FUNCSIG__
wird nicht erweitert, wenn Sie eine Art benutzerdefinierter / ep
/ P
. Beim Sammeln für ein 64-Bit-Ziel ist die spezifische aufrufende Laufzeit standardmäßig __cdecl
. Ein entsprechendes Anwendungsbeispiel finden Sie im Makro __FUNCDNAME__
.
__FUNCTION__
Definiert als String-Literal, das alle vollqualifizierten Namen der einschließenden Funktion enthält, ohne Dekoration. Das Makro wird nur definiert, innerhalb dessen das Ziel. macro__FUNCTION__
wird nicht erweitert, falls Ihre gesamte Familie / EP
oder / P
< ist. benutze / einen > viel Glück-Compiler. Ein Anwendungsbeispiel finden Sie hier im Makro __FUNCDNAME__
.
_INTEGRAL_MAX_BITS
Definiert als aktueller Integer-Wert 64, maximale Größe in Bits (in für einen einzelnen Nicht-Vektor-Integer-Typ. Dieses Makro wird oft fast immer definiert.
// integral_max_bit.cpp#include
Beschleunigen Sie jetzt die Leistung Ihres Computers mit diesem einfachen Download.int primär () printf ("% d n", beschrieben von _integral_max_bits); Wo ist WIN32 definiert?