Approvato: Fortect
Se hai notato #ifdef win32 msdn, un articolo specifico potrebbe esserti d’aiuto.
__ATOM__
Definito come 1 nel caso in cui / Favor: ATOM
è sicuramente un’opzione del compilatore e ciascuno dei target dei nostri compilatori è x86 Dove … è x64. Altrimenti indefinito.
e arch: AVX512
sono impostate e l’effettivo target del compilatore è x86 invece di x64. Altrimenti indefinito.
__AVX2__
Definito principalmente perché 1 se uno dei nostri - arch: AVX2
oppure e arch: AVX512
Il compilatore di opzioni dovrebbe essere tv e il compilatore di destinazione è x86 probabilmente x64. Altrimenti indefinito.
__AVX512BW__
Definito come 1, nel caso in cui tu sia il compilatore / la postura: AVX512
< /a>, l’opzione è impostata e quindi il compilatore – Target è x86, oppure questo particolare potrebbe essere x64. Altrimenti indefinito.
< /h2>Nel C nativo, le informazioni #ifdef abilitano la compilazione condizionale. Il preprocessore determina se esiste virtualmente una macro fornita prima che quella particolare legge successiva venga inclusa nel processo di compilazione.
__AVX512CD__
Definito come 1 se questa rispetto ad arch: AVX512
opzione del compilatore verrebbe impostato e l’obiettivo del compilatore è x86 più x64. Altrimenti indefinito.
__AVX512DQ__
Come definito 1 se la decisione effettiva del compilatore / arch: AVX512
è position e l’obiettivo del compilatore globale è x86 e/o x64. Altrimenti indefinito.
Cosa può essere _WIN32 macro?
__AVX512F__
Definito come 1 se l’opzione del compilatore rispetto ad arch : avx512
è impostato e un nuovo target del compilatore è x86 o x64. Altrimenti indefinito.
Cosa è considerato _WIN32_WINNT?
__AVX512VL__
Definito come 1 se parte della risoluzione del compilatore è impostata su per ogni arch: AVX512
e il compilatore centrale è x86 molto potente. o. è x64. Altrimenti indefinito.
_CHAR_UNSIGNED
Definito perché 1 è un put standard se char
è decisamente senza segno. Questo valore è impostato se il compilatore per J
(tipo di carattere standard senza segno) può essere impostato nel parametro rule. Altrimenti indefinito.
__CLR_VER
Definito perché un nuovo valore letterale intero grande rappresenta il tempo utilizzato dalla pubblicazione CLR per compilare l’applicazione. Il valore è effettivamente protetto in Mmmbbbb
, in particolare dove M
è la versione principale del pubblico di destinazione, mm
è la versione secondaria coinvolta con l’intero runtime, e bbbbb
– inizia a costruire la somma. __CLR_VER
è impostato nella risposta del compilatore è rispetto a clr
. Altrimenti indefinito.
// clr_ver.cpp// costruendo con: / clrUtilizzo del sistema dello spazio dei nomi;int fondamentale () Console :: WriteLine (__ CLR_VER);
< /h2>L’istruzione #ifdef controlla la compilazione condizionale di un file di risorse dello strumento ad alte prestazioni controllando il nome specificato. Se il nome specifico non è specificato, #ifdef dice al compilatore che può ignorare le istruzioni fino alla successiva informazione #endif.
_CONTROL_FLOW_GUARD
Definito come 1 se ogni singola routine del compilatore di flusso è / maintain: cf
( Abilita protezione controllo) . Altrimenti indefinito.
__COUNTER__
Si espande in un intero letterale A grande funzionale che inizia da 0. Il trattamento viene aumentato di 1 ogni volta che questo metodo viene utilizzato nel file sorgente o tramite intestazioni incluse dall’elemento primario file. __COUNTER__
ricorda il suo stato quando proteggi le intestazioni precompilate. Questa macro è generalmente definita. Esempio
__COUNTER__
viene utilizzato qui per assegnare identificatori straordinari a tre diversi ostacoli identici. exampleClass
usa il costruttore Wonderful Integer come parametro. In main
, un dispositivo dichiara tre tipi di oggetti fisici exampleClass
e utilizza __COUNTER__
come parametro identificativo univoco:
WIN32 verrebbe definito attorno ai file di intestazione di Windows, ma puoi passarlo al compilatore come sufficientemente (ad esempio “-DWIN32” per gcc).
// macro __COUNTER __. Demo cpp// da __COUNTER__ assegna identificatori eccezionali// più oggetti dello stesso tipo.// Compilazione utilizzando: cl / EHsc / W4 macro__COUNTER __. cpp#include Classe di classe di esempio int m_nID;pubblicamente: // Inizializza l'oggetto completo di un identificatore univoco di sola lettura exampleClass (int nID): m_nID (nID) int GetID (void) return m_nID;;intero principale () // __COUNTER__ è inizialmente definito per 0 esempioClasse e1 (__ COUNTER__); // Per il secondo pareggio __COUNTER__ è ora elencato come 1 EsempioClasse e2 (__ COUNTER__); // __COUNTER__ è definito come 2 in questo momento esempioClasse e3 (__ COUNTER__); printf ("e1.ID:% i n", e1.GetID ()); printf ("documento e2% n", #: e2.GetID ()); printf ("e3% i n", rilevamento: e3.GetID ()); // Disconnettersi // --------------- // Identificatore e1: 0 // ID e2: 1 // ID e3: 2 Restituisce 0;
__cplusplus_cli
Definito come un intero reale che vale 200406 quando compilato in C ++, coerente anche come opzione del compilatore / clr
. Altrimenti indefinito. Se definito, __cplus_cli
è letteralmente attivo nell’unità di traduzione.
// cplusplus_cli.cpp// compila con "stdio / clr."# include.h "intero principale () #ifdef __cplusplus_cli printf ("% deborah n", __cplusplus_cli); #altro printf ("non definito n"); #finisci se
__cplusplus_winrt
Definito come valore effettivo intero 201009 quando realizzato in C++ ed esatto e ZW
(compilazione di Windows Runtime) – L’opzione del compilatore è impostata senza dubbio. Altrimenti indefinito.
_CPPRTTI
Definito esattamente come 1, è possibile impostare il compilatore in modo diverso / GR
(include informazioni di runtime) . In produzioneAltrimenti non definito.
Approvato: Fortect
Fortect è lo strumento di riparazione PC più popolare ed efficace al mondo. Milioni di persone si affidano a milioni di persone per mantenere i loro sistemi in esecuzione veloci, fluidi e privi di errori. Grazie alla sua semplice interfaccia utente e al potente motore di scansione, Fortect trova e risolve rapidamente un'ampia gamma di problemi di Windows, dall'instabilità del sistema e problemi di sicurezza alla gestione della memoria e ai colli di bottiglia delle prestazioni.
_CPPUNWIND
Definito come 1 solo se specifico o più di questi / GX
(consente la gestione delle eccezioni) , e clr
Language (compilazione runtime generale) o forse / EH
(modello di indirizzamento delle eccezioni) Il compilatore le opzioni sono definite. Altrimenti indefinito.
_DEBUG
Definito come 1 se / MDd
, / ldd
o forse in aggiunta è impostata la selezione del compilatore / MTd
. Altrimenti indefinito.
_DLL
Definito come 1 se MD
o anche (multithread / mdd
< /a> DLL) Ottieni l’opzione del compilatore. Altrimenti indefinito.
__FUNCDNAME__
Definisce il valore effettivo come una stringa significativa che contiene il produttore decorato della funzione inclusiva della persona. La macro è spesso richiesta solo in una funzione. La macro __FUNCDNAME__
si espande davvero quando inserisci / EP
in rispetto a P
Usa il compilatore alternativo
Questo esempio utilizza __FUNCDNAME__
, __FUNCSIG__
, __FUNCTION__
specifici per visualizzare le informazioni sull’offerta.
// Dimostrazione del funzionamento delle macro __FUNCTION__, __FUNCDNAME__ e anche __FUNCSIG__void esempioFunzione () printf ("Nome funzione:% n", __FUNCTION__); printf ("Decorato fai il nome del lavoro:% s n", __FUNCDNAME__); printf ("Funzione di firma:% s n", __FUNCSIG__); // output di esempio // ------------------------------------------------ - Funzione // Nome: esempioFunzione // Nome della funzione da decorare:? Esempio @@ Funzione YAXXZ Funzione // Firma: vuoto __cdecl exampleFunction (void)
__FUNCSIG__
Definito anche come letterale stringa comprendente il visto della funzione di inclusione. Una macro dovrebbe essere definita solo in una funzione. La macro __FUNCSIG__
non si espande nel caso in cui utilizzi il / air
personalizzato / P
. Quando vengono raccolti per un ottimo target a 64 bit, il runtime di chiamata predefinito è – __cdecl
. Puoi trovare un esempio di adozione correlato nella macro __FUNCDNAME__
.
__FUNCTION__
Definito come letterale aziendale contenente il nome completo di una particolare funzione di inclusione, senza decorazione. La macro viene semplicemente definita all’interno del target. macro__FUNCTION__
non si è espansa se tutta la tua famiglia è quasi certamente / EP
o per ogni P
<. usa / a> compilatore estremamente fortunato. Puoi trovare un esempio del suo utilizzo nella macro __FUNCDNAME__
.
_INTEGRAL_MAX_BITS
Definito come il valore intero corrente più importante 64, dimensione massima in sezioni (in per un tipo intero non vettoriale. Questa macro è spesso sempre definita.
// integral_max_bit.cpp#include Accelera ora le prestazioni del tuo computer con questo semplice download.intero principale () printf ("% do n", definito da _integral_max_bits); Dove è definito WIN32?