Předdefinovaná makra
Předdefinované seznamy ANSI c a Microsoft C++ provádění makra.
Kompilátor rozpozná předdefinovaná makra ANSI C a implementace Microsoft C++ poskytuje několik dalších.Tyto makra žádné argumenty a nelze předefinovat.Některé předdefinované makra uvedené níže jsou definovány s více hodnotami.Naleznete další informace v následujících tabulkách.
Kompatibilní se standardem ANSI předdefinovaná makra
Makro |
Description |
---|---|
__DATE__ |
Datum vyplnění aktuální zdrojový soubor.Datum je řetězec literálu formuláře Mmm rrrr dd.Název měsíce Mmm je stejná jako data generovaná funkcí knihovny asctime deklarované v čase.H. |
__FILE__ |
Název aktuální zdrojový soubor.__FILE__proměnnou řetězce uzavřeny v uvozovkách.Aby se zobrazí se úplná cesta k souboru, použijte /FC (úplnou cestu souboru zdrojový kód v Diagnostika). |
__LINE__ |
Číslo řádku v aktuální zdrojový soubor.Číslo je desítkové celé číslo konstanta.Mohou být změněny s #line směrnice. |
__STDC__ |
Označuje plný soulad s ANSI c standard.Definován jako celočíselná konstanta 1 pouze tehdy, pokud /Za je dán volba kompilátoru a nejsou kompilace kódu jazyka C++; jinak nedefinovaná. |
__TIME__ |
Čas poslední kompilace aktuální zdrojový soubor.Čas je řetězec literálu formuláře hh: mm:. |
__TIMESTAMP__ |
Datum a čas poslední změny aktuální zdrojový soubor vyjádřené jako řetězcový literál v podobě Ddd den Mmm rrrr hh: mm:, kde Ddd je zkrácený den v týdnu a den je celé číslo od 1 do 31. |
Předdefinovaná makra společnosti Microsoft
Makro |
Description |
---|---|
_ATL_VER |
Definuje ATL verze. V Visual Studio 2010, _ATL_VER je definován jako 0x1000. |
_CHAR_UNSIGNED |
Výchozí char je typ bez znaménka.Definice při /J je určena. |
__CLR_VER |
Definuje verzi společného jazykového modulu runtime při aplikaci byl kompilován.Vrácená hodnota bude mít následující formát: Mmmbbbbb kde,
|
__cplusplus_cli |
Definice při sestavování s /clr, /clr:pure, nebo /clr:safe.Hodnota __cplusplus_cli je 200406.__cplusplus_cli je platná v celém překlad jednotky.
|
__COUNTER__ |
Rozšíří na celé počínaje 0 a vždy je použit ve zdrojovém souboru, nebo zahrnout záhlaví zdrojového souboru s přírůstkem 1.__COUNTER__Při použití kompilovaných záhlaví si pamatuje stavu. Následující příklad používá __COUNTER__ přiřadit jedinečné identifikátory tři různé objekty stejného typu. Nejprve se předpokládají následující definici třídy.Konstruktor trvá celé jako parametr.
V hlavní, aplikace deklaruje tři objekty typu exampleClass, použití __COUNTER__ jako parametr jedinečný identifikátor.
|
__cplusplus |
Definován pouze programy C++. |
_CPPRTTI |
Definovaná pro kód zkompilován s /GR (povolit spuštění typ informace). |
_CPPUNWIND |
Definovaná pro kód zkompilován s /GX (Povolit zpracování výjimek). |
_DEBUG |
|
_DLL |
Definice při /MD nebo /MDd (s více podprocesy (DLL) je určen. |
__FUNCDNAME__ |
Platné pouze ve funkci.Definuje zdobená název ohraničujícím funkce jako řetězec. __FUNCDNAME__není rozbalené, pokud použijete /EP nebo /P volba kompilátoru. V následujícím příkladu __FUNCDNAME__, __FUNCSIG__, a __FUNCTION__ makra, které chcete zobrazit informace o funkci.
|
__FUNCSIG__ |
Platné pouze ve funkci.Podpis ohraničujícím funkce definuje jako řetězec. __FUNCSIG__není rozbalené, pokud použijete /EP nebo /P volba kompilátoru. Na 64bitový operační systém, konvence volání je __cdecl ve výchozím nastavení. Příklad naleznete v tématu __FUNCDNAME__. |
__FUNCTION__ |
Platné pouze ve funkci.Zdrojový název nadřazeného funkce definuje jako řetězec. __FUNCTION__není rozbalené, pokud použijete /EP nebo /P volba kompilátoru. Příklad naleznete v tématu __FUNCDNAME__. |
_INTEGRAL_MAX_BITS |
Maximální velikost (v bitech) integrálního typu zprávy.
|
_M_ALPHA |
Definované pro DEC platformy ALPHA (již není podporována). |
_M_AMD64 |
Definované pro x 64 procesorů. |
_M_CEE |
Kompilace, která používá v jakékoli formě definované /clr (/clr:oldSyntax, /clr:safe, například). |
_M_CEE_PURE |
Kompilace, který používá definice /clr:pure. |
_M_CEE_SAFE |
Kompilace, který používá definice /clr:safe. |
_M_IX86 |
Definované pro x 86 procesory.Najdete hodnoty _M_IX86 tabulky pod Další informace.To není definován pro 64bitové procesory. |
_M_IA64 |
Pro Itanium procesor řady 64bitové procesory. |
_M_ARM_FP |
Rozšíří proměnnou na hodnotu určující, které /arch byla použita volba kompilátoru:
|
_M_IX86_FP |
Rozšíří proměnnou na hodnotu určující, které /arch byla použita volba kompilátoru:
|
_M_MPPC |
Definováno pro platformy Power Macintosh (již není podporována). |
_M_MRX000 |
Definováno pro MIPS platformy (již není podporována). |
_M_PPC |
Definováno pro PowerPC platformy (již není podporována). |
_M_X64 |
Definované pro x 64 procesorů. |
_MANAGED |
Definice se 1 při /clr je určena. |
_MFC_VER |
Definuje MFC verze.Například v Visual Studio 2010, _MFC_VER je definován jako 0x0A00. |
_MSC_BUILD |
Je vyhodnocena jako součást čísla revize číslo verze kompilátoru.Číslo revize je součást čtvrté číslo verze tečkou.Pokud je číslo verze kompilátoru Visual C++, 15.00.20706.01, například _MSC_BUILD makra je vyhodnocen jako 1. |
_MSC_EXTENSIONS |
Toto makro je definován při kompilaci s /Ze volba kompilátoru (výchozí).Jeho hodnota definována, je 1. |
_MSC_FULL_VER |
Vyhodnotí hlavní dílčí a číslo součásti kompilátoru číslo verze sestavení.Hlavní číslo první komponenta číslo verze tečkou, vedlejší číslo je druhou komponentu a číslo sestavení je třetí složky.Pokud je číslo verze kompilátoru Visual C++, 15.00.20706.01, například _MSC_FULL_VER makra je vyhodnocen jako 150020706.Typ cl /? na příkazovém řádku zobrazit číslo verze kompilátoru. |
_MSC_VER |
Je vyhodnocena jako hlavní a vedlejší číslo součásti číslo verze kompilátoru.Hlavní číslo první komponenta číslo verze s tečkou a druhou komponentu je menší číslo. Pokud je číslo verze kompilátoru Visual C++, 15.00.20706.01, například _MSC_VER 1500 vyhodnocen jako makro. V Visual Studio 2010, _MSC_VER je definován jako 1600. |
__MSVC_RUNTIME_CHECKS |
Definované při jedné z /RTC je určen volby kompilátoru. |
_MT |
Definice při /MD nebo /MDd (s více podprocesy (DLL) nebo /MT nebo /MTd (Multithreaded) je určen. |
_NATIVE_WCHAR_T_DEFINED |
Definice při /Zc:wchar_t se používá. |
_OPENMP |
Definice při kompilaci s /openmp, vrátí celé číslo představující datum specifikaci OpenMP implementován Visual C++.
|
_VC_NODEFAULTLIB |
Definice při /Zl používá; Viz /Zl (vynechat výchozí název knihovny) Další informace. |
_WCHAR_T_DEFINED |
Definice při /Zc:wchar_t se používá nebo pokud je v záhlaví systému soubor zahrnutý v projektu wchar_t. |
_WIN32 |
Definice aplikací pro systém Win32 a Win64.Vždy definován. |
_WIN64 |
Definice aplikací pro prostředí Win64. |
_Wp64 |
Při určování definované /Wp64. |
Jak ukazuje následující tabulka, kompilátor generuje hodnotu pro identifikátory preprocesoru, které odrážejí zadána možnost procesoru.
Hodnoty pro _M_IX86
Možnost ve vývojovém prostředí |
Možnost příkazového řádku |
Výsledná hodnota |
---|---|---|
Prolnutí |
/GB |
_M_IX86 = 600(Výchozí nastavení.Budoucí kompilátory bude posílat jinou hodnotu tak, aby odrážely dominantní procesor.) |
Pentium |
/ G5 |
_M_IX86 = 500 |
Pentium Pro, Pentium II a Pentium III |
/ G6 |
_M_IX86 = 600 |
80386 |
/ G3 |
_M_IX86 = 300 |
80486 |
/ G4 |
_M_IX86 = 400 |