Udostępnij za pośrednictwem


Wstępnie zdefiniowane makra

Wyświetla listę wstępnie zdefiniowanych ANSI c i Microsoft C++ wykonania makra.

Kompilator rozpoznaje wstępnie makra ANSI C i wdrażania firmy Microsoft C++ udostępnia kilka dalszych.Te makra nie wymaga żadnych argumentów i nie można ponownie zdefiniować.Niektóre wstępnie zdefiniowane makra wymienione poniżej są zdefiniowane z wieloma wartościami.Zobacz następujące tabele, aby uzyskać więcej informacji.

Wstępnie ze standardem ANSI makra

Makro

Opis

__DATE__

Data kompilacji bieżącego pliku źródłowego.Data jest ciąg literału formularza Mmm dd rrrr.Nazwa miesiąca Mmm jest taka sama jak daty wygenerowane przez funkcję biblioteki asctime zadeklarowane w czasie.H.

__FILE__

Nazwa bieżącego pliku źródłowego.__FILE__rozszerza się na ciąg ujęte w podwójny cudzysłów.W celu zapewnienia, że wyświetlana jest pełna ścieżka do pliku, należy użyć /FC (pełną ścieżkę pliku kodu źródłowego w Diagnostyka).

__LINE__

Numer wiersza w bieżącym pliku źródłowego.Numer wiersza jest stała dziesiętna.Można zmienić z #line dyrektywy.

__STDC__

Wskazuje pełną zgodność z ANSI c standard.Zdefiniowane jako liczba całkowita 1 stała tylko wtedy, gdy /Za podano opcji kompilatora i nie są kompilowanie kodu C++; w przeciwnym razie jest niezdefiniowane.

__TIME__

Ostatni czas kompilacji bieżącego pliku źródłowego.Czas jest ciąg literału formularza ss.

__TIMESTAMP__

Data i godzina ostatniej modyfikacji bieżącego pliku źródłowego, wyrażona w postaci literału ciągu Data Ddd Mmm rrrr hh, gdzie Ddd jest skróconą dzień tygodnia i Data jest liczbą całkowitą od 1 do 31.

Wstępnie zdefiniowane makra programu Microsoft

Makro

Opis

_ATL_VER

Określa wersję ATL.

W Visual Studio 2010, _ATL_VER jest zdefiniowana jako 0x1000.

_CHAR_UNSIGNED

Domyślnie char typu jest niepodpisany.Kiedy definicja /J jest określony.

__CLR_VER

Określa wersję common language runtime używanych podczas stosowania został skompilowany.Wartość zwracana będzie w następującym formacie:

Mmmbbbbb

w przypadku gdy

  • Mjest głównych wersji środowiska wykonawczego

  • mmjest wersja pomocnicza runtime

  • bbbbbjest numerem kompilacji.

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

__cplusplus_cli

Zdefiniowane podczas kompilacji z /clr, /clr:pure, lub /clr:safe.Wartość __cplusplus_cli jest 200406.__cplusplus_cli jest w całej jednostki translacji.

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

Rozwija Integer, zaczynając od 0 i zwiększając o 1 za każdym razem jest używany w pliku źródłowym, lub włączone nagłówków pliku źródłowego.__COUNTER__pamięta jego stanu używania nagłówków wstępnie skompilowana.

W poniższym przykładzie użyto __COUNTER__ do przypisywania niepowtarzalnych identyfikatorów do trzech różnych obiektów tego samego typu.

Po pierwsze przyjmuje następującą definicję klasy.Konstruktor ma całkowitą jako parametr.

W głównym, aplikacja deklaruje trzy obiekty typu exampleClass, korzystanie z __COUNTER__ jako parametr identyfikator unikatowy.

__cplusplus

Zdefiniowane tylko programów C++.

_CPPRTTI

Zdefiniowane kod skompilowany z przełączników /GR (Włącz Run-Time typu informacji).

_CPPUNWIND

Zdefiniowane kod skompilowany z /GX (Włączanie obsługi wyjątków).

_DEBUG

Zdefiniowane podczas kompilacji z /LDd, /MDd, i /MTd.

_DLL

Kiedy definicja Opcje lub /MDd (wielowątkowe DLL) jest określony.

__FUNCDNAME__

Prawidłowy tylko w przypadku funkcji.Definiuje Nazwa zdobione otaczający funkcji jako ciąg.

__FUNCDNAME__nie jest rozwinięta, jeśli używasz /EP lub /P opcję kompilatora.

W poniższym przykładzie użyto __FUNCDNAME__, __FUNCSIG__, i __FUNCTION__ makra, aby wyświetlić informacje o funkcji.

__FUNCSIG__

Prawidłowy tylko w przypadku funkcji.Określa podpis otaczający funkcji jako ciąg.

__FUNCSIG__nie jest rozwinięta, jeśli używasz /EP lub /P opcję kompilatora.

W 64-bitowym systemie operacyjnym jest konwencja wywołania __cdecl domyślnie.

Zobacz __FUNCDNAME__ przykład.

__FUNCTION__

Prawidłowy tylko w przypadku funkcji.Definiuje nazwę bez funkcji otaczający jako ciąg.

__FUNCTION__nie jest rozwinięta, jeśli używasz /EP lub /P opcję kompilatora.

Zobacz __FUNCDNAME__ przykład.

_INTEGRAL_MAX_BITS

Raporty integralną typu maksymalny rozmiar (w bitach).

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

_M_ALPHA

Zdefiniowane dla DEC ALPHA platform (nie jest już obsługiwane).

_M_AMD64

Zdefiniowane dla procesorów x 64.

_M_CEE

Zdefiniowane dla kompilacji, który korzysta z jakiejkolwiek formy /clr (/clr:oldSyntax, /clr:safe, na przykład).

_M_CEE_PURE

Zdefiniowane dla kompilacji, który używa /clr:pure.

_M_CEE_SAFE

Zdefiniowane dla kompilacji, który używa /clr:safe.

_M_IX86

Zdefiniowane dla x 86 procesorów.Zobacz wartości dla _M_IX86 tabeli poniżej, aby uzyskać więcej informacji.To nie jest zdefiniowany dla x 64 procesorów.

_M_IA64

Zdefiniowane dla Itanium procesora rodziny 64-bitowe procesory.

_M_ARM_FP

Rozszerza się, aby wartość wskazującą, które /arch została użyta opcja kompilatora:

  • W zakresie 30-39, jeśli nie /arch została określona opcja RAMIĘ, wskazując architektury domyślne dla RAMIENIA wykorzystywane (VFPv3).

  • W zakresie 40-49, jeśli /arch:VFPv4 został użyty.

  • Zobacz /arch (x86) Aby uzyskać więcej informacji.

_M_IX86_FP

Rozszerza się, aby wartość wskazującą, które /arch została użyta opcja kompilatora:

  • 0, jeśli /arch:IA32 został użyty.

  • 1 Jeżeli /arch:SSE został użyty.

  • 2 Jeśli /arch:SSE2 został użyty.Wartość ta jest domyślnie, jeśli /arch nie został określony.

  • Zobacz /arch (x86) Aby uzyskać więcej informacji.

_M_MPPC

Zdefiniowane dla platform Power Macintosh (nie jest już obsługiwane).

_M_MRX000

Zdefiniowane dla platform MIPS (nie jest już obsługiwane).

_M_PPC

Zdefiniowane dla platformy PowerPC (nie jest już obsługiwane).

_M_X64

Zdefiniowane dla procesorów x 64.

_MANAGED

Zdefiniowane być 1, gdy /CLR jest określony.

_MFC_VER

Określa wersję MFC.Na przykład w Visual Studio 2010, _MFC_VER jest zdefiniowana jako 0x0A00.

_MSC_BUILD

Wynikiem zmiany numeru składnik numer wersji kompilatora.Numer wersji jest składnik czwarty numer wersji rozdzielonym.Na przykład, jeśli numer wersji kompilatora Visual C++ jest 15.00.20706.01 _MSC_BUILD wynikiem makro 1.

_MSC_EXTENSIONS

To makro, jest definiowany podczas kompilacji z /Ze opcję kompilatora (domyślnie).Zdefiniowane, jego wartość wynosi 1.

_MSC_FULL_VER

Wynikiem głównych pomocnicze i budowanie Ponumeruj składniki numer wersji kompilatora.Liczba głównych jest pierwszy element numer wersji rozdzielonym pomocniczy numer jest drugi składnik i numer kompilacji jest trzeciego składnika.Na przykład, jeśli numer wersji kompilatora Visual C++ jest 15.00.20706.01 _MSC_FULL_VER 150020706 wynikiem makro.Typ cl /? w wierszu polecenia, aby wyświetlić numer wersji kompilatora.

_MSC_VER

Wynikiem głównych i pomocniczych Ponumeruj składniki numer wersji kompilatora.Liczba głównych jest pierwszy element numer wersji rozdzielonym i pomocniczy numer jest drugi składnik.

Na przykład, jeśli numer wersji kompilatora Visual C++ jest 15.00.20706.01 _MSC_VER wynikiem 1500 makro.

W Visual Studio 2010, _MSC_VER jest zdefiniowany jako 1600.

__MSVC_RUNTIME_CHECKS

Kiedy definicja jedną z RTC określono opcje kompilatora.

_MT

Kiedy definicja Opcje lub /MDd (wielowątkowe DLL) lub /MT lub /MTd (Wielopozimowe) jest określony.

_NATIVE_WCHAR_T_DEFINED

Kiedy definicja /Zc:wchar_t jest używana.

_OPENMP

Zdefiniowane podczas kompilowania z /openmp, zwraca liczbę całkowitą reprezentującą datę specyfikacji OpenMP implementowane przez Visual C++.

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

_VC_NODEFAULTLIB

Kiedy definicja /Zl jest stosowany; zobacz /ZL (Brak domyślnej nazwy biblioteki) Aby uzyskać więcej informacji.

_WCHAR_T_DEFINED

Kiedy definicja /Zc:wchar_t jest używana lub jeśli wchar_t jest zdefiniowany w pliku nagłówkowym systemu, zawarte w projekcie.

_WIN32

Zdefiniowane dla aplikacji dla Win32 i Win64.Zawsze jest zdefiniowana.

_WIN64

Zdefiniowane dla wniosków o Win64.

_Wp64

Definicja określając /Wp64.

Jak pokazano w poniższej tabeli, kompilator generuje wartości identyfikatorów preprocesora, które odzwierciedlają określona opcja procesora.

Wartości _M_IX86

Opcja w środowisku programowania

Opcja wiersza polecenia

Otrzymana wartość

Mieszania

/GB

_M_IX86 = 600(Domyślnie.Kompilatory w przyszłości będzie emitują inną wartość, aby odzwierciedlić dominującej procesor.)

Pentium

/ G5

_M_IX86 = 500

Pentium Pro, Pentium II i Pentium III

/ G6

_M_IX86 = 600

80386

/ G3

_M_IX86 = 300

80486

/ G4

_M_IX86 = 400

Zobacz też

Informacje

Makra (C/C++)

Operatory preprocesora

Dyrektywy preprocesora