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,

  • Mje hlavní verze modulu runtime

  • mmdílčí verze modulu runtime

  • bbbbbje číslo sestavení.

// clr_ver.cpp
// compile with: /clr
using namespace System;
int main() {
   Console::WriteLine(__CLR_VER);
}

__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.

// cplusplus_cli.cpp
// compile with: /clr
#include "stdio.h"
int main() {
   #ifdef __cplusplus_cli
      printf("%d\n", __cplusplus_cli);
   #else
      printf("not defined\n");
   #endif
}

__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

Definice při sestavování s /LDd, /MDd, a /MTd.

_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.

// integral_max_bits.cpp
#include <stdio.h>
int main() {
   printf("%d\n", _INTEGRAL_MAX_BITS);
}

_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:

  • V rozsahu 30-39, pokud ne /arch nebyla zadána možnost PAŽE, označující výchozí architektura pro ARM byla použita (VFPv3).

  • V rozsahu 40-49, pokud /arch:VFPv4 byl použit.

  • Další informace naleznete v tématu /arch (x86).

_M_IX86_FP

Rozšíří proměnnou na hodnotu určující, které /arch byla použita volba kompilátoru:

  • 0, pokud /arch:IA32 byl použit.

  • 1 Pokud /arch:SSE byl použit.

  • 2 Pokud /arch:SSE2 byl použit.Pokud je tato hodnota výchozí /arch nebyla zadána.

  • Další informace naleznete v tématu /arch (x86).

_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++.

// _OPENMP_dir.cpp
// compile with: /openmp 
#include <stdio.h> 
int main() {
   printf("%d\n", _OPENMP);
}

_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

Viz také

Referenční dokumentace

Makra (C/C++)

Operátory preprocesoru

Direktivy preprocesoru