Macro predefinite
Vengono elencate le macro predefinite ANSI C e di implementazione Microsoft C++.
Il compilatore riconosce le macro predefinite ANSI C e l'implementazione Microsoft C++ fornisce diversi di più.Queste macro non accetta argomenti e non possono essere ridefinite.Alcune macro predefinite elencate di seguito vengono definite con più valori.Vedere le seguenti tabelle per ulteriori informazioni.
Macro predefinite Conformi con ANSI
Macro |
Descrizione |
---|---|
__DATE__ |
La data di compilazione del file di origine corrente.La data è un valore letterale stringa del form Yyyy dd Mmm.Il nome del mese Mmm è identico per le date di generate dalla funzione di libreria asctime dichiarato in TIME.H. |
__FILE__ |
Il nome del file di origine corrente.__FILE__ genera una stringa racchiusa tra virgolette doppie.Per assicurarsi che il percorso completo del file video, utilizzare /FC (Percorso completo del file di codice sorgente nella diagnostica). |
__LINE__ |
Il numero di riga nel file di origine corrente.Il numero di riga è una costante Integer decimale.Può essere modificato con una direttiva #line. |
__STDC__ |
Indica la conformità completa con lo standard ANSI C.Definito come costanti Integer 1 solo se l'opzione del compilatore /Za viene specificata e si compila il codice C++, in caso contrario è definito. |
__TIME__ |
Il periodo di compilazione più recente del file di origine corrente.Il tempo è un valore letterale stringa del form formato hh: mm: ss. |
__TIMESTAMP__ |
La data e l'ora dell'ultima modifica del file di origine corrente, espressa come valore letterale stringa nel formato Hh data DDD Mmm: mm: yyyy ss, in cui DDD è il giorno della settimana abbreviato e data è un numero da 1 a 31. |
Macro predefinite Specifiche microsoft
Macro |
Descrizione |
---|---|
_ATL_VER |
Definisce la versione ATL. In Visual Studio 2010, _ATL_VER viene definito come 0x1000. |
_CHAR_UNSIGNED |
Il tipo predefinito char è senza segno.Definito se /J è specificato. |
__CLR_VER |
Definisce la versione di Common Language Runtime utilizzato quando l'applicazione è stata compilata.Il valore restituito sarà nel formato seguente: Mmmbbbbb dove:
|
__cplusplus_cli |
Definito se si utilizza /clr, /clr:pure, o /clr:safe.Il valore di __cplusplus_cli è 200406.Il __cplusplus_cli è attivo in unità di conversione.
|
__COUNTER__ |
Si espande un numero intero che iniziano con 0 e che incrementa da 1 ogni volta che viene utilizzato in un file di origine o nelle intestazioni incluse del file di origine.__COUNTER__ memorizza il relativo stato quando si utilizzano intestazioni precompilate. Nell'esempio riportato __COUNTER__ per assegnare identificatori univoci a tre oggetti diverse dello stesso tipo. Innanzitutto, si supponga che la definizione di classe seguente.Il costruttore accetta un intero come parametro.
Nella classe principale, l'applicazione viene dichiarata tre oggetti di tipo exampleClass, utilizzando __COUNTER__ come parametro dell'identificatore univoco.
|
__cplusplus |
Definito per i programmi C++ solo. |
_CPPRTTI |
Definito per il codice compilato con /GR (abilitare le informazioni sul tipo di runtime. |
_CPPUNWIND |
Definito per il codice compilato con /GX (attivare la gestione delle eccezioni). |
_DEBUG |
|
_DLL |
Definito se /MD o /MDd (DLL con multithreading è specificato. |
__FUNCDNAME__ |
Valido solo in una funzione.Definisce nome decorato della funzione di inclusione come stringa. __FUNCDNAME__ non viene espanso se si utilizza l'opzione del compilatore /P o /EP. Nell'esempio riportato __FUNCDNAME__, __FUNCSIG__e macro __FUNCTION__ per visualizzare le informazioni di funzione.
|
__FUNCSIG__ |
Valido solo in una funzione.Definisce la firma della funzione di inclusione come stringa. __FUNCSIG__ non viene espanso se si utilizza l'opzione del compilatore /P o /EP. In un sistema operativo a 64 bit, la convenzione di chiamata è __cdecl per impostazione predefinita. Per un esempio, vedere __FUNCDNAME__. |
__FUNCTION__ |
Valido solo in una funzione.Definisce il nome non decorato della funzione di inclusione come stringa. __FUNCTION__ non viene espanso se si utilizza l'opzione del compilatore /P o /EP. Per un esempio, vedere __FUNCDNAME__. |
_INTEGRAL_MAX_BITS |
Indica la dimensione massima (in bit) per un tipo integrale.
|
_M_ALPHA |
Definito per le piattaforme ALFABETICHE di (alpha più supportati). |
_M_AMD64 |
Definito per i processori x64. |
_M_CEE |
Definito per una compilazione che utilizza un formato /clr (/clr:oldSyntax, /clr:safe, ad esempio). |
_M_CEE_PURE |
Definito per una compilazione che utilizza /clr:pure. |
_M_CEE_SAFE |
Definito per una compilazione che utilizza /clr:safe. |
_M_IX86 |
Definito per i processori x86.Vedere la tabella valori per _M_IX86 riportato di seguito per ulteriori informazioni.Ciò non è definita per i processori x64. |
_M_IA64 |
Definito per i processori a 64 bit della famiglia del processore Itanium. |
_M_ARM_FP |
Si espande a un'indicazione di valoreopzione del compilatore /arch è stata utilizzata:
|
_M_IX86_FP |
Si espande a un'indicazione di valoreopzione del compilatore /arch è stata utilizzata:
|
_M_MPPC |
Definito per la piattaforma Macintosh di potenza (più supportati). |
_M_MRX000 |
Definito per le piattaforme di MIPS (più supportati). |
_M_PPC |
Definito per le piattaforme PowerPC (più supportati). |
_M_X64 |
Definito per i processori x64. |
_MANAGED |
Definito come 1 quando /clr è specificato. |
_MFC_VER |
Definisce la versione MFC.Ad esempio, in Visual Studio 2010, _MFC_VER viene definito come 0x0A00. |
_MSC_BUILD |
Valuta alla parte del numero di revisione il numero di versione del compilatore.Il numero di revisione è la quarta parte del numero di versione il cui nome contenga punti.Ad esempio, se il numero di versione del compilatore Visual C++ è 15.00.20706.01, la macro _MSC_BUILD restituisce 1. |
_MSC_EXTENSIONS |
Questa macro viene definita quando si utilizza l'opzione del compilatore /Ze (impostazione predefinita).Il valore, una volta definito, è 1. |
_MSC_FULL_VER |
Valuta componenti principali, subordinate e il numero di build del numero di versione del compilatore.Il numero principale è la prima parte del numero di versione il cui nome contenga punti separato, il numero minore è la seconda parte e il numero di build è la terza componente.Ad esempio, se il numero di versione del compilatore Visual C++ è 15.00.20706.01, la macro _MSC_FULL_VER restituisce 150020706.Digitare cl /? la riga di comando per visualizzare il numero di versione del compilatore. |
_MSC_VER |
Restituisce il maggiore e componenti del numero minore numero di versione del compilatore.Il numero principale è la prima parte del numero di versione il cui nome contenga punti separato e il numero minore è la seconda parte. Ad esempio, se il numero di versione del compilatore Visual C++ è 15.00.20706.01, la macro _MSC_VER restituisce 1500. In Visual Studio 2010, _MSC_VER è definito come 1600. |
__MSVC_RUNTIME_CHECKS |
Definito se una delle opzioni del compilatore /RTC è specificata. |
_MT |
Definito se /MD o /MDd (DLL con multithreading o /MT o /MTd (con multithreading è specificato. |
_NATIVE_WCHAR_T_DEFINED |
Definito se /Zc: wchar_t viene utilizzato. |
_OPENMP |
Definito se la compilazione con /openmp, restituisce un Integer che rappresenta la data della specifica di OpenMP implementata da Visual C++.
|
_VC_NODEFAULTLIB |
Definito se /Zl viene utilizzato; vedere /Zl (Omette il nome della libreria predefinita) per ulteriori informazioni. |
_WCHAR_T_DEFINED |
Definito se /Zc: wchar_t utilizzato o se wchar_t viene definito in un file di intestazione del sistema associato al progetto. |
_WIN32 |
Definito per le applicazioni Win32 e Win64.Sempre definita. |
_WIN64 |
Definito per le applicazioni per Win64. |
_Wp64 |
Definito quando si specificano /Wp64. |
Come illustrato nella tabella seguente, il compilatore genera un valore per gli identificatori del preprocessore che riflettono l'opzione del processore specificato.
Valori per _M_IX86
Opzione nell'ambiente di sviluppo |
Opzione della riga di comando |
Valore risultante |
---|---|---|
Combinazione |
/GB |
_M_IX86 = 600 (impostazione predefinita.I compilatori futuri genereranno un valore diverso per riflettere il processore dominante.) |
Pentium |
/G5 |
_M_IX86 = 500 |
Pentium pro, Pentium SECONDA e Pentium III |
/G6 |
_M_IX86 = 600 |
80386 |
/G3 |
_M_IX86 = 300 |
80486 |
/G4 |
_M_IX86 = 400 |