Zatwierdzono: Fortect
Jeśli zauważysz #ifdef win32 msdn, ten artykuł może ci na to pozwolić.
__ATOM__
Zdefiniowane jako 1, jeśli / Favor: ATOM
to opcja kompilatora i po prostu każda z nasze cele kompilatora to x86 Gdzie … to x64. W przeciwnym razie nieokreślone.
__AVX__
Zgodnie z definicją 1, jeśli i arch: AVX
, na arch: AVX2
i nawet te konkretne opcje kompilatora / arch: AVX512
zostają ustawione, a celem kompilatora jest w rzeczywistości x86 zamiast x64. W przeciwnym razie nieokreślone.
__AVX2__
Zdefiniowane jako 1, jeśli w naszym / arch: AVX2
lub po prostu / arch: AVX512
Kompilatorem opcji jest tv, a zamierzonym kompilatorem jest x86 lub ewentualnie x64. W przeciwnym razie nieokreślone.
__AVX512BW__
Zdefiniowane jako 1, jeśli jesteś każdym z naszych kompilatorów / arch: AVX512
, cała opcja jest ustawiona i kompilator – Target to x86 lub może to być x64. W przeciwnym razie nieokreślone.
< /h2>W starożytnej wersji C dyrektywa #ifdef umożliwia kompilację warunkową. Preprocesor określa, czy dostarczone makro istnieje, gdy przed tym konkretnym kolejnym kodem jest zawarty w jednym konkretnym procesie kompilacji.
__AVX512CD__
Zdefiniowane jako 1, jeśli ta opcja kompilatora / arch: AVX512
jest ustawiony, a ich celem kompilatora jest x86 lub x64. W przeciwnym razie nieokreślone.
__AVX512DQ__
Zgodnie z definicją 1, jeśli lub kiedy aktualna opcja kompilatora / arch: AVX512
jest ustawiona i globalny adres kompilatora to x86 lub x64. W przeciwnym razie nieokreślone.
Co to jest makro _WIN32?
__AVX512F__
Zdefiniowane jako 1, jeśli każda opcja kompilatora / arch: avx512
może być ustawiony, a docelowym kompilatorem będzie prawdopodobnie x86 lub x64. W przeciwnym razie nieokreślone.
Co to _WIN32_WINNT?
__AVX512VL__
Zdefiniowane jako 1, jeśli rozdzielczość kompilatora jest określona na / arch : AVX512
jak również docelowy kompilator jest bardzo potężny x86. lub. to x64. W przeciwnym razie nieokreślone.
_CHAR_UNSIGNED
Zdefiniowane, ponieważ unikalny jest typem standardowym, jeśli char
jest dosłownie zdecydowanie niepodpisany. Ta wartość jest jednak ustawiona, jeśli kompilator / J
(standardowy typ osobowości bez znaku) jest ustawiony w tym konkretnym parametrze reguły. W przeciwnym razie nieokreślone.
__CLR_VER
Zdefiniowane, ponieważ literał całkowity reprezentuje główną publikację CLR używaną do kompilacji aplikacji. Wartość jest w rzeczywistości zakodowana w Mmmbbbb
, w szczególności gdzie M
jest główną wersją czytnika, mm
będzie podrzędną wersją całe środowisko uruchomieniowe, a także bbbbb
– suma kompilacji. __CLR_VER
jest ustawiony, jeśli odpowiedź kompilatora to zwykle / clr
. W przeciwnym razie nieokreślone.
// clr_ver.cpp// buduj z: clrKorzystanie z systemu przestrzeni nazw;wew główna () Konsola :: WriteLine (__ CLR_VER);
< /h2>Dyrektywa #ifdef kontroluje warunkową kolekcję pliku zasobów o wysokiej wydajności, sprawdzając najważniejszą określoną nazwę. Jeśli nazwa jest nieokreślona, #ifdef mówi kompilatorowi, aby ignorował instrukcje do czasu, gdy pojawi się następna informacja #endif.
_CONTROL_FLOW_GUARD
Zdefiniowane jako 1, jeśli każda procedura kompilatora przepływu to zwykle / guard: cf
( Włącz Control Guard) . W przeciwnym razie nieokreślone.
__COUNTER__
Rozwija się do dużej literału liczby całkowitej A i zaczyna się od 0. Przysmak jest zwiększany o 1 za każdym razem, gdy jest używany w nowym pliku źródłowym lub w nagłówkach, z których plik elementu podstawowego. __COUNTER__
zapamiętuje unikalny status, gdy otrzymujesz prekompilowane nagłówki. To makro jest zwykle zdefiniowane. Przykład
__COUNTER__
często jest tutaj używany do przypisywania nadzwyczajnych identyfikatorów w celu naprawdę trzech różnych identycznych obiektów. exampleClass
tworzy konstruktor Wonderful Integer jako parametr. W main
urządzenie deklaruje trzy poziomy obiektów exampleClass
i może uczynić __COUNTER__
jako unikalnym parametrem identyfikatora:
WIN32 jest zdefiniowany w plikach nagłówkowych Windows, ale możesz go przekazać, co pomoże również kompilatorowi (np. “-DWIN32” w kierunku gcc).
// makro __COUNTER __. Demo cpp// przez __COUNTER__ przypisz unikalne identyfikatory// kilka obiektów, które widzisz, tego samego typu.// Kompilacja za pomocą: cl / EHsc lub W4 macro__COUNTER __. Cpp#włącz Przykładowa klasa klasy int m_nID;publicznie: // Zainicjuj obiekt unikalnym identyfikatorem tylko do odczytu exampleClass (int nID): m_nID (nID) int GetID (void) powrót m_nID;;wew główna () // __COUNTER__ jest bez wątpienia początkowo zdefiniowany jako 0 przykładKlasa e1 (__ COUNTER__); // Dla drugiego łącza __COUNTER__ jest teraz wyceniony na 1 PrzykładKlasa e2 (__ COUNTER__); // __COUNTER__ jest obecnie rozpoznawany jako 2 przykładKlasa e3 (__ COUNTER__); printf ("e1.ID:% i n", e1.GetID ()); printf ("e2% i n", #: e2.GetID ()); printf („e3% moja żona i ja n”, wykrywanie: e3.GetID ()); // Wyloguj // -------------------------------------------- // Identyfikator e1: 0 // ID e2: 1 // ID e3: 2 Zwraca 0;
__cplusplus_cli
Zdefiniowana jako całkowita wartość rzeczywista 200406 po skompilowaniu w C++, zdefiniowana również jako kompilator - clr
opcja. W przeciwnym razie nieokreślone. Jeśli jest zdefiniowany, __cplus_cli
jest aktywny w jakiejś jednostce tłumaczeniowej.
// cplusplus_cli.cpp// skompiluj wraz z "stdio / clr."# włącz.h "wew główna () #ifdef __cplusplus_cli printf ("% d n", __cplusplus_cli); #inne printf ("nieokreślony n"); #zakończ, jeśli
__cplusplus_winrt
Zdefiniowana jako liczba całkowita, bardzo wartość 201009 podczas kompilacji w C ++, podczas gdy dokładne / ZW
(kompilacja środowiska wykonawczego Windows) – Opcja kompilatora została ustalona bez wątpienia. W przeciwnym razie nieokreślone.
_CPPRTTI
Zdefiniowana jako 1, możesz wyświetlić opcję kompilatora / GR
(dołącz informacje o czasie wykonywania) . W produkcjiW przeciwnym razie nie ustalono.
Zatwierdzono: Fortect
Fortect to najpopularniejsze i najskuteczniejsze narzędzie do naprawy komputerów na świecie. Miliony ludzi ufają, że ich systemy działają szybko, płynnie i bez błędów. Dzięki prostemu interfejsowi użytkownika i potężnemu silnikowi skanowania, Fortect szybko znajduje i naprawia szeroki zakres problemów z systemem Windows - od niestabilności systemu i problemów z bezpieczeństwem po zarządzanie pamięcią i wąskie gardła wydajności.
_CPPUNWIND
Zdefiniowane jako 1 tylko wtedy, gdy jedna lub więcej osób / GX
(zezwalaj na obsługę wykluczeń) , / clr
Język (ogólna kompilacja środowiska wykonawczego) lub / EH
(model obsługi wyjątków) Decyzje kompilatora są określone. W przeciwnym razie nieokreślone.
_DEBUG
Zdefiniowane jako 1, jeśli dla każdego MDd
, / ldd
a może nawet opcja kompilatora MTd
jest ustawiona. W przeciwnym razie nieokreślone.
_DLL
Zdefiniowane zawsze, gdy 1 jeśli / MD
lub po prostu (wielowątkowy / mdd
DLL) Pobierz opcję kompilatora. W przeciwnym razie nieokreślone.
__FUNCDNAME__
Definiuje ich rzeczywistą wartość jako ciąg znaków, który zawiera tę ozdobioną nazwę kompleksowej funkcji osoby. Makro jest wymagane tylko w funkcji. Makro __FUNCDNAME__
naprawdę zwiększa się po dodaniu / EP
do / P
kompilator opcji.
Ten przykład wymaga określonych __FUNCDNAME__
, __FUNCSIG__
, __FUNCTION__
, aby wyświetlić informacje o zezwoleniu.
// Demonstracja funkcjonalności makr __FUNCTION__, __FUNCDNAME__ a potem nawet __FUNCSIG__void exampleFunkcja () printf ("Nazwa funkcji:% s n", __FUNCTION__); printf ("Nazwa ozdobnej funkcji:% verts n", __FUNCDNAME__); printf ("Funkcja podpisu:% h n", __FUNCSIG__); // wyjście demonstracyjne // ------------------------------------------------ - Funkcja // Nazwa: przykładFunkcja // Nazwa funkcji, kiedy trzeba dekorować:? Przykład @@ Funkcja YAXXZ Funkcja // Podpis: void __cdecl exampleFunkcja (nieważny)
__FUNCSIG__
Zdefiniowane nawet ze względu na to, że jest to literał łańcuchowy zawierający wizę naszej funkcji otaczającej. Makro powinno być specyficzne tylko w funkcji. Jak makro __FUNCSIG__
nie rozwija się, jeśli używasz stylowych / ep
i P
. Po zebraniu dla 64-bitowego celu, kontaktowanie się ze środowiskiem wykonawczym domyślnie to __cdecl
. Prawdopodobnie znajdziesz powiązany przykład użycia w ich makrze __FUNCDNAME__
.
__FUNCTION__
Zdefiniowany jako literał łańcuchowy zawierający bezsprzecznie kwalifikowaną nazwę funkcji otaczającej, bez środowiska. Makro jest zdefiniowane tylko w żądanym zakresie. macro__FUNCTION__
nie rozwija się, jeśli aktualna cała rodzina to / EP
lub / P
<. uzyskać korzyści z / a> kompilatora powodzenia. Z pewnością znajdziesz przykład jego użycia w ogólnie makrze __FUNCDNAME__
.
_INTEGRAL_MAX_BITS
Zdefiniowane jako bieżąca wartość całkowita sześćdziesiąt cztery, maksymalny rozmiar w bitach (w przypadku fantastycznego niewektorowego typu liczb całkowitych. To makro jest często podawane.
// integral_max_bit.cpp#włącz Przyspiesz teraz wydajność swojego komputera dzięki temu prostemu pobieraniu.wew główna () printf („% d n”, postrzegane przez _integral_max_bits); Gdzie jest zdefiniowany WIN32?