Sdílet prostřednictvím


Předdefinovaná makra

Lists the predefined ANSI/ISO C99 and Microsoft C++ implementation preprocessor macros.

Kompilátor rozpozná předdefinované ANSI/ISO C99 C Preprocessor – makra a implementace Microsoft C++ poskytuje několik dalších.Tyto preprocessor makra nemají žádné argumenty a nelze znovu definovat.Některé z předdefinovaných makra uvedené v tomto článku jsou definovány s více hodnotami.

ANSI kompatibilní se specifikací předdefinovány makra

Makro

Popis

__DATE__

Datum kompilace aktuální zdrojový soubor.Datum je řetězec literálu formuláře mm yyyy dd.Název měsíce dd. je stejná jako u kalendářních dat generovaných funkci knihovny asctime deklarované v čase. H.

__FILE__

Název aktuální zdrojový soubor.__FILE__ Rozbalí a řetězcový literál.Chcete-li zajistit, že se zobrazí úplná cesta k souboru, použijte /FC (úplná cesta k souboru zdrojového kódu v diagnostice).

__func__

Vrací název neúplné a prostým nadřazených funkce jako pole char.

void Foo(){
printf("%s\n", __func__);
} // prints “Foo”

__LINE__

Číslo řádku v aktuální zdrojový soubor.Číslo řádku je desítkové celé číslo literálu.Může být změněna pomocí #line direktivu.

__STDC__

Označuje shodu s standard ANSI/ISO C99.Definován jako celé číslo literálu konstanta 1 pouze tehdy, pokud /Za je zadána možnost kompilátoru a nejsou kompilace kódu jazyka C++, v opačném případě není definováno.

__TIME__

Poslední čas 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ého souboru, vyjádřené jako řetězcový literál v podobě Ddd datum Mmm rrrr hh: mm:, kde Ddd je zkrácený den v týdnu a datum je celé číslo od 1 do 31.

Specifické pro společnost Microsoft předdefinované makra

Makro

Popis

_ATL_VER

Definuje na verzi ATL kódovaná jako celé číslo literálu.

__AVX__

Když definované /arch:AVX nebo /arch:AVX2 je zadán.

__AVX2__

Když definované /arch:AVX2 je zadán.

_CHAR_UNSIGNED

Výchozí char typ není podepsán.Když definované /j je zadán.

__CLR_VER

Definuje verzi common language runtime použít, pokud byl zkompilován aplikace.Vrácená hodnota je celé číslo literálu kódovaná v následujícím formátu:

Mmmbbbbb

kde,

  • M je hlavní verze modulu runtime

  • mm je dílčí verze modulu runtime

  • bbbbb je číslo sestavení.

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

__cplusplus_cli

Definované při sestavování s /clr, /clr:pure, nebo /clr:safe.Hodnota __cplusplus_cli je literál 200406 celé číslo.__cplusplus_cli je platná v celém překlad částí.

// 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
}

__cplusplus_winrt

Definované, používáte-li /ZW možnost ke kompilaci.Hodnota __cplusplus_winrt je literál 201009 celé číslo.

__COUNTER__

Rozbalí na celé číslo literálu počínaje 0 a zvyšující o 1 při každém používá se ve zdrojovém souboru nebo zahrnuty záhlaví zdrojového souboru.__COUNTER__ Při použití předkompilovaných hlavičkách zapamatuje si svůj stav.

V následujícím příkladu __COUNTER__ pro přiřazení jedinečné identifikátory tři různé objekty stejného typu.

Nejprve předpokládat, že následující definici třídy.Konstruktor přebírá jako parametr celé číslo.

Hlavní, aplikace deklaruje tři objekty typu exampleClass, s použitím __COUNTER__ jako parametr jedinečného identifikátoru.

__cplusplus

Pro programy v jazyce C++ definováno.

_CPPRTTI

Definované pro kód kompilován s /GR (Povolit Run-Time informace o typu).

_CPPUNWIND

Definované pro kód kompilován pomocí jednoho z /EH (model zpracování výjimek) příznaky.

_DEBUG

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

_DLL

Když definované /MD nebo /MDd (ve více vláknech DLL) je zadán.

__FUNCDNAME__

Platné pouze ve funkci.Definuje upraveném název nadřazených funkce řetězcový literál.

__FUNCDNAME__ není rozbalen, pokud použijete /EP nebo /P možnosti kompilátoru.

V následujícím příkladu __FUNCDNAME__, __FUNCSIG__, a __FUNCTION__ makra Chcete-li zobrazit informace o funkci.

__FUNCSIG__

Platné pouze ve funkci.Definuje podpis nadřazených funkce jako řetězcový literál.

__FUNCSIG__ není rozbalen, pokud použijete /EP nebo /P možnosti kompilátoru.

Na 64bitové operační systém, je konvence volání __cdecl ve výchozím nastavení.

Podívejte se na téma __FUNCDNAME__ příklad.

__FUNCTION__

Platné pouze ve funkci.Definuje název upraveného nadřazených funkce řetězcový literál.

__FUNCTION__ není rozbalen, pokud použijete /EP nebo /P možnosti kompilátoru.

Podívejte se na téma __FUNCDNAME__ příklad.

_INTEGRAL_MAX_BITS

Maximální velikost (v bitech) integrální typ. hlásí jako celé číslo literálu.

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

_M_AMD64

Definované pro kompilace, které se zaměřují x 64 procesorů.

_M_ARM

Pro kompilace, které se zaměřují ARM procesory definováno.

_M_CEE

Definované pro kompilaci, který používá jakoukoli formu /clr (/clr:oldSyntax, /clr:safe, například).

_M_CEE_PURE

Definované pro kompilaci, který používá /clr:pure.

_M_CEE_SAFE

Definované pro kompilaci, který používá /clr:safe.

_M_IX86

Definované pro kompilace, které se zaměřují x 86 procesory.Toto není definován pro platformu x 64 procesorů.

_M_ARM_FP

Celočíselná hodnota literálu určující, které se přizpůsobí /arch byla použita možnost kompilátoru:

  • V rozsahu: 30-39, pokud žádné /arch byla zadána možnost ARM, určující výchozí architektura pro ARM byl použit (VFPv3).

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

  • Podívejte se na téma /arch (x86) Další informace.

_M_IX86_FP

Celočíselná hodnota literálu určující, které se přizpůsobí /arch byla použita možnost kompilátoru:

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

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

  • 2 if /arch:SSE2, /arch:AVX nebo /arch:AVX2 byl použit.Tato hodnota je ve výchozím nastavení, pokud /arch nebyl zadán.Když /arch:AVX není zadán, makra __AVX__ definovat také.Když /arch:AVX2 není zadán, __AVX__ a __AVX2__ je definována.

  • Podívejte se na téma /arch (x86) Další informace.

_M_X64

Definované pro kompilace, které se zaměřují x 64 procesorů.

_MANAGED

Definované být 1 when /CLR je zadán.

_MFC_VER

Definuje na verzi MFC kódovaná jako celé číslo literálu.

_MSC_BUILD

Výsledkem je literál, který obsahuje číslo revize komponenta číslo verze kompilátoru celé číslo.Číslo revize je čtvrtou komponenta číslo verze oddělený období.Pokud je číslo verze kompilátoru Visual C++ 15.00.20706.01, například _MSC_BUILD makra se vyhodnocuje do 1.

_MSC_EXTENSIONS

Tato makra je definován při kompilaci s /Ze možnosti kompilátoru (výchozí).Hodnota, když je definován, je 1.

_MSC_FULL_VER

Výsledkem celočíselný literál, která kóduje hlavních dílčí a vytvářet číslo součásti číslo verze kompilátoru.Hlavní číslo je první komponenta číslo verze oddělený období, menší číslo je druhé složky 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 macro vyhodnocen jako 150020706.Typ cl /? na příkazovém řádku, chcete-li zobrazit číslo verze kompilátoru.

_MSC_VER

Výsledkem je literál, která kóduje hlavních a vedlejších číslo součásti číslo verze kompilátoru celé číslo.Hlavní číslo je první komponenta číslo verze oddělený období a menší číslo je druhé složky.

Pokud je číslo verze kompilátoru Visual C++ 17.00.51106.1, například _MSC_VER macro vyhodnocen jako 1700.Typ cl /? na příkazovém řádku, chcete-li zobrazit číslo verze kompilátoru.

__MSVC_RUNTIME_CHECKS

Když definované jeden z /RTC – možnosti kompilátoru je zadán.

_MT

Když definované /MD nebo /MDd (ve více vláknech DLL) nebo /MT nebo /MTd (Multithreaded) je zadán.

_NATIVE_WCHAR_T_DEFINED

Když definované /Zc:wchar_t se používá.

_OPENMP

Definuje při kompilaci s /openmp, vyhodnocen jako celé číslo literál, který představuje datum specifikace OpenMP implementované Visual C++.

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

_VC_NODEFAULTLIB

Když definované /Zl se používá, naleznete v části /Zl (vypuštění názvu výchozí knihovny) Další informace.

_WCHAR_T_DEFINED

Když definované /Zc:wchar_t se používá nebo je-li wchar_t je definován v záhlaví souboru systému součástí projektu.

_WIN32

Pro aplikace pro systém Win32 a Win64 definováno.Vždy definován.

_WIN64

Pro žádosti o Win64 definováno.

Viz také

Referenční dokumentace

Makra (C/C++)

Operátory preprocesoru

Preprocesor – direktivy