Godkänd: Fortect
Om du har lagt märke till #ifdef win32 msdn kan den här skicklighetsartikeln hjälpa dig.
__ATOM__
Definierat som 1 ska det vara / Favor: ATOM
är ofta ett kompilatoralternativ och vart och ett av författarens kompilatormål är x86 där … det är x64. Annars odefinierat.
__AVX__
Som karaktäriseras 1 om / arch: AVX
, / arch: AVX2
även kompilatoralternativen kontra arch: AVX512
är inställda och det viktigaste kompilatormålet är x86 istället för x64. Annars odefinierat.
__AVX2__
Definierat en gång 1 om någon av våra eller arch: AVX2
eller kontra arch: AVX512
Alternativkompilatorn kommer sannolikt att vara tv och målkompilatorn är x86 samt möjligen x64. Annars odefinierat.
__AVX512BW__
Definierat som 1, men om du är kompilatorn / posture: AVX512
, alternativet är inställt men även kompilatorn – Målet är x86, eller allt kan vara x64. Annars odefinierat.
< /h2>I inbyggt C möjliggör #ifdef-instruktionen villkorlig kompilering. Förprocessorn bestämmer om ett mycket tillhandahållet makro existerar innan den särskilda efterföljande stilen inkluderas i kompileringsprocessen.
__AVX512CD__
Definierat som 1 om detta och arch: AVX512
kompilatoralternativ är normalt inställt och kompilatormålet är x86 , x64. Annars odefinierat.
__AVX512DQ__
Enligt definition 1 om faktisk kompilatorväg / arch: AVX512
är inställd och det globala kompilatormålet är x86 dessutom till x64. Annars odefinierat.
Vad kan vara _WIN32-makro?
__AVX512F__
Definierat eftersom 1 om kompilatoralternativet per arch: avx512
är inställt och ett speciellt kompilatormål är x86 eller x64. Annars odefinierat.
Vad är ofta _WIN32_WINNT?
__AVX512VL__
Definieras som 1 om all kompilatorupplösning är inställd på - arch: AVX512
och den fokuserade kompilatorn är mycket kraftfull x86. eller. det är x64. Annars odefinierat.
_CHAR_UNSIGNED
Definierat eftersom 1 är en standardtyp av om char
definitivt är osignerad. Detta värde sätts om per J
(standard osignerad teckentyp) kompilatorn nästan säkert är inställd i regelparametern. Annars odefinierat.
__CLR_VER
Definierat eftersom ett fantastiskt heltalsliteral representerar den CLR-publikation som används som kan kompilera programmet. Värdet är faktiskt säkrat i Mmmbbbb
, särskilt där M
är huvudversionen av målgruppen, mm
är den mindre versionen tillsammans med hela runtime, och bbbbb
– få summa. __CLR_VER
ställs in i ett fall där kompilatorns svar är - clr
. Annars odefinierat.
// clr_ver.cpp// få med: / clrAnvända namnutrymmessystemet;int primär () Konsol :: WriteLine (__ CLR_VER);
< /h2>#ifdef-informationen kontrollerar den villkorliga kompileringen av en högpresterande leverantörsfil genom att kontrollera det angivna namnet. Om det specifika namnet är ospecificerat berättar #ifdef kompilatorn när du behöver ignorera instruktionerna tills nästa #endif-information.
_CONTROL_FLOW_GUARD
Definierat som 1 om nästan varje flödeskompilatorrutin är / ta hand om: cf
(Aktivera Control Guard) . Annars odefinierat.
__COUNTER__
Expanderas till varje stort bokstavligt heltalA som börjar på 0. Behandlingen ökas med 1 varje gång den används i källfilen eller när rubriker ingår från den primära elementfilen. __COUNTER__
kommer ihåg sin status när du samlar in förkompilerade rubriker. Detta makro definieras vanligtvis. Exempel
__COUNTER__
används här som ett sätt att tilldela extraordinära identifierare till tre olika identiska varor. exampleClass
använder Wonderful Integer-konstruktorn som en parameter. I main
skulle jag säga att enheten deklarerar tre typer av exampleClass
bitar och använder __COUNTER__
som vilken unik identifieringsparameter som helst:
WIN32 definieras vanligtvis kring Windows-huvudfiler, men du kan skicka det till kompilatorn på rätt sätt (t.ex. “-DWIN32” för gcc).
// makro __COUNTER __. Demo cpp// från __COUNTER__ tilldela fantastiska identifierare// flera objekt av samma typ.// Kompilera med hjälp av: cl / EHsc / W4 macro__COUNTER __. Cpp#include Exempel klassklass int m_nID;offentligt: // Initiera objektet samtidigt som du har en unik skrivskyddad identifierare exempelKlass (int nID): m_nID (nID) int GetID (void) returnera m_nID;;int main () // __COUNTER__ är initialt definierad som 0 exempelKlass e1 (__ COUNTER__); // För den andra sammankopplingen __COUNTER__ är nu listad som 1 ExempelKlass e2 (__ COUNTER__); // __COUNTER__ definieras som 2 åt gången exempelKlass e3 (__ COUNTER__); printf ("e1.ID:% i n", e1.GetID ()); printf ("e2% jag har n", #: e2.GetID ()); printf ("e3% i n", upptäckt: e3.GetID ()); // Logga ut // -------------------------------------------------- // Identifierare e1: 0 // ID e2: 1 // ID e3: 2 Returnerar 0;
__cplusplus_cli
Definierat som ett heltals verkligt pris 200406 när det kompileras i C ++, även uppfattat som / clr
kompilatoralternativ. Annars odefinierat. Om definierad är __cplus_cli
definitivt aktiv i översättningsenheten.
// cplusplus_cli.cpp// kompilera med "stdio / clr."# include.h "int main () #ifdef __cplusplus_cli printf ("% kemikalie n", __cplusplus_cli); #annan printf ("odefinierad n"); #slut om
__cplusplus_winrt
Definierat som ett heltals verkligt värde 201009 när det genereras i C ++ och exakt per ZW
(kompilerar Windows Runtime) – Kompilatoralternativet är inställt utan tvekan. Annars odefinierat.
_CPPRTTI
Definierat även som 1, kan du ställa in kompilatorns chans / GR
(inkludera körtidsinformation) . I produktion Annars ej definierad.
Godkänd: Fortect
Fortect är världens mest populära och effektiva PC-reparationsverktyg. Det litar på miljontals människor för att hålla sina system igång snabbt, smidigt och felfritt. Med sitt enkla användargränssnitt och kraftfulla skanningsmotor hittar och fixar Fortect snabbt ett brett utbud av Windows-problem – från systeminstabilitet och säkerhetsproblem till minneshantering och prestandaflaskhalsar.
_CPPUNWIND
Definieras som 1 endast om en viss eller flera av dessa / GX
(tillåt undantagshantering) , clr
Språk (allmän körtidskompilering) eller kanske / EH
(exception manhandling model) kompilatoralternativ definieras. Annars odefinierat.
_DEBUG
Definieras som en specifik person om / MDd
, / ldd
< /a> eller kanske till och med / MTd
kompilatoralternativet är inställt. Annars odefinierat.
_DLL
Definierat som 1 om MD
eller till och med (flertrådad / mdd
< /a> DLL) Hämta kompileringsalternativet. Annars odefinierat.
__FUNCDNAME__
Definierar det faktiska värdet som din egen sträng som innehåller det dekorerade användarnamnet för personens inkluderande funktion. Makrot kanske bara krävs i en funktion. Makrot __FUNCDNAME__
expanderar verkligen när du sätter / EP
till per P
Använd procedur kompilator.
Det här exemplet använder specifik __FUNCDNAME__
, __FUNCSIG__
, __FUNCTION__
för att visa information om erbjudandet.
// Demonstration av verkligheten av makron __FUNCTION__, __FUNCDNAME__ och även __FUNCSIG__void exempelFunktion () printf ("Funktionsnamn: % övning n", __FUNCTION__); printf ("Dekorerad funktionsnamn:% s n", __FUNCDNAME__); printf ("Signaturfunktion:% s n", __FUNCSIG__); // exempel utdata // -------------------------------------------------- - Funktion // Namn: exempelFunktion // Namn på funktionen att dekorera:? Exempel @@ YAXXZ-funktion Funktion // Signatur: tom __cdecl exempelFunktion (void)
__FUNCSIG__
Definierat även som en bokstavlig sträng med visa för den omslutande funktionen. Ett makro bör endast definieras i en funktion. Makrot __FUNCSIG__
expanderas inte förutsatt att du använder den anpassade / air
/ P
. När den samlas in för det nya 64-bitarsmålet, är den anropande körtiden som standard på vägen till __cdecl
. Du kan hitta ett relaterat användningsexempel i makrot __FUNCDNAME__
.
__FUNCTION__
Definierat som en bokstavlig som innehåller det fullständiga namnet på dess omslutande funktion, utan dekoration. Makrot är singeldefinierat inom målet. macro__FUNCTION__
expanderar inte om hela din familjs / EP
eller och P
<. använd / a> superb lycka kompilator. Du kan hitta ett exempel på dess användning i makrot __FUNCDNAME__
.
_INTEGRAL_MAX_BITS
Definierat som för närvarande det aktuella heltalsvärdet 64, maximal storlek i bitar (in för en heltalstyp som inte är vektor. Detta makro är ofta alltid definierat.
// integral_max_bit.cpp#include
Snabba upp din dators prestanda nu med denna enkla nedladdning.int main () printf ("% s n", definierad av _integral_max_bits); Var definieras WIN32?