Aracılığıyla paylaş


Önceden tanımlı makrolar

Önceden tanımlanmış listeler ANSI c ve C++ Microsoft uygulaması makrolar.

Derleyici öntanımlı ANSI c makroları tanır ve Microsoft C++ uygulamasında birden çok daha fazlasını sağlar. Bu makroları hiçbir bağımsız değişken alır ve yeniden tanımlanamaz. Aşağıda listelenen önceden tanımlanmış makroların bazıları birden çok değeri ile tanımlanır. Daha fazla bilgi için aşağıdaki tablolara bakın.

ANSI uyumlu önceden tanımlı makrolar

Makro

Description

__DATE__

Geçerli kaynak dosyası derleme tarihi. Tarihidir bir dize hazır bilgi formunun dd Mmm yyyy. Ay adı aaa Kitaplığı işlevi kullanılarak oluşturulan tarihleri aynıdır asctime zaman bildirildi.H.

__FILE__

Geçerli kaynak dosyasının adıdır. __FILE__çift tırnak işaretleri içinde bir dizeye genişler. Dosyasının tam yolunu görüntülendiğinden emin olmak için /fc (Tanılama kaynak kod dosyasının tam yolu).

__LINE__

Geçerli kaynak dosyadaki satır numarası. Satır numarasını ondalık tamsayı sabiti ' dir. İle değiştirilebilir bir #line yönergesi.

__STDC__

Tam uygunluğu gösterir ANSI c standardı. Tamsayı sabiti 1 eksikse tanımlanan /Za derleyici seçeneği verilir ve C++ kodu; derleme değil Aksi takdirde tanımlı değil.

__TIME__

Geçerli kaynak dosyasının en son derleme zamanı. Zamandır bir dize hazır bilgi formunun SS.

__TIMESTAMP__

Tarih ve saat biçiminde bir dize olarak ifade edilen geçerli kaynak dosyasının, son değişikliğin yapıldığı Ddd aaa tarih ss yyyy, burada Ddd kısaltılmış haftanın gününü ise ve tarihi 31 ile 1 arasında bir tamsayı olan.

Özel Microsoft önceden tanımlı makrolar

Makro

Description

_ATL_VER

atl sürümünü tanımlar.

De Visual Studio 2010, _ATL_VER 0x1000 tanımlanır.

_CHAR_UNSIGNED

Varsayılan char türü imzalanmamış. Ne zaman tanımlı /j belirtilir.

__CLR_VER

Uygulama derlendiğinde kullanılan ortak dil çalışma zamanı sürümünü tanımlar. Döndürülen değer aşağıdaki biçimde olacaktır:

Mmmbbbbb

Burada,

  • Mbaşlıca çalışma zamanı sürümüdür

  • mmküçük çalışma zamanı sürümüdür

  • bbbbbderleme numarasıdır.

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

__cplusplus_cli

Tanımlanmış olan derleme ne zaman /clr, /clr:pure, ya da /clr:safe. __Cplusplus_cli 200406 değeridir. __cplusplus_cli çeviri biriminin etkindir.

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

0 İle başlayan ve kaynak dosyada kullanılan ya da kaynak dosyası üstbilgileri dahil her zaman 1'den başlayarak tamsayı genişletir. __COUNTER__önceden derlenmiş üstbilgileri kullanıldığında durumuna hatırlar.

Aşağıdaki örnek __COUNTER__ üç farklı nesnelere aynı türe ait benzersiz tanımlayıcılar atamak için.

İlk olarak, aşağıdaki sınıf tanımı varsayalım. Yapıcı bir tamsayı parametre olarak alır.

Ana, üç nesne türü uygulamaya bildirir exampleClass, kullanma __COUNTER__ olarak benzersiz tanımlayıcı parametresi.

__cplusplus

C++ programları için tanımlanır.

_CPPRTTI

Kod ile derlenmesi için tanımlanan /gr (çalışma zamanı tür bilgilerini etkinleştir).

_CPPUNWIND

Kod ile derlenmesi için tanımlanan /gx (özel durum işlemeyi etkinleştir).

_DEBUG

Tanımlanmış olan derleme ne zaman /LDd, /MDd, ve /MTd.

_DLL

Ne zaman tanımlı /md veya /MDd (çok iş parçacıklı dll) belirtilir.

__FUNCDNAME__

Yalnızca bir işlev içinde geçerlidir. Tanımlar adı ve bir dize olarak kapsayan işlevinin.

__FUNCDNAME__kullanıyorsanız, genişletilmiş durumda değil /ep veya /p derleyici seçeneği.

Aşağıdaki örnek __FUNCDNAME__, __FUNCSIG__, ve __FUNCTION__ işlev bilgileri görüntülemek için makrolar.

__FUNCSIG__

Yalnızca bir işlev içinde geçerlidir. İmza kapsayan işlevinin bir dize olarak tanımlar.

__FUNCSIG__kullanıyorsanız, genişletilmiş durumda değil /ep veya /p derleyici seçeneği.

64-Bit işletim sisteminde çağırma kuralı olan __cdecl varsayılan olarak.

Bir örnek için bkz. __FUNCDNAME__

__FUNCTION__

Yalnızca bir işlev içinde geçerlidir. Bir dize olarak ve kapsayan işlevin adını tanımlar.

__FUNCTION__kullanıyorsanız, genişletilmiş durumda değil /ep veya /p derleyici seçeneği.

Bir örnek için bkz. __FUNCDNAME__

_INTEGRAL_MAX_BITS

En büyük boyutu (BITS) tamsayı türü için raporlar.

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

_M_ALPHA

Tanımlanan için dec alpha platformlarında (artık desteklenmiyor).

_M_AMD64

X 64 işlemciler için tanımlanmamış.

_M_CEE

Herhangi bir biçimde kullanan bir derleme için tanımlanan /clr (/clr:oldSyntax, /clr:safe, örneğin).

_M_CEE_PURE

Kullanan bir derleme için tanımlanan /clr:pure.

_M_CEE_SAFE

Kullanan bir derleme için tanımlanan /clr:safe.

_M_IX86

X 86 işlemciler için tanımlanmamış. Bkz: _M_IX86 değerlerini daha fazla bilgi için tablo aşağıda. X 64 için tanımlanmamış işlemciler.

_M_IA64

İçin tanımlanan Itanium işlemci ailesinin 64-bit işlemciler için.

_M_ARM_FP

Hangi gösteren bir değer genişletir /arch derleyici seçeneği kullanıldı:

  • 30-39 Yok, aralıktaki /arch KOLU seçeneği belirtildi, varsayılan mimarisi için ARM gösteren kullanıldı (VFPv3).

  • Aralıktaki 40-49 if /arch:VFPv4 kullanıldı.

  • Daha fazla bilgi için bkz. /arch (x86).

_M_IX86_FP

Hangi gösteren bir değer genişletir /arch derleyici seçeneği kullanıldı:

  • 0 if /arch:IA32 kullanıldı.

  • 1 if /arch:SSE kullanıldı.

  • 2 Eğer /arch:SSE2 kullanıldı. Bu değer varsayılan değer ise /arch belirtilmemiş.

  • Daha fazla bilgi için bkz. /arch (x86).

_M_MPPC

Power Macintosh platformları için (artık desteklenmemektedir) tanımlanır.

_M_MRX000

(Artık desteklenmemektedir) MIPS platformları için tanımlanır.

_M_PPC

(Artık desteklenmemektedir) PowerPC platformları için tanımlanır.

_M_X64

X 64 işlemciler için tanımlanmamış.

_MANAGED

1 Olması için tanımlanan /clr belirtilir.

_MFC_VER

mfc sürümünü tanımlar. Örneğin, Visual Studio 2010, _MFC_VER 0x0A00 tanımlanır.

_MSC_BUILD

Derleyici 's sürüm numarasının düzeltme numarası bileşen olarak değerlendirilir. Gözden geçirme numarası noktayla ayrılmış sürüm numarası dördüncü bileşenidir. Örneğin, 15.00.20706.01, Visual C++ derleyicisi sürüm numarası olan _MSC_BUILD makro 1 olarak değerlendirilir.

_MSC_EXTENSIONS

Bu makro ile derleme yaparken tanımlanmış /Ze derleyici seçeneği (varsayılan). Tanımladığınızda, onun değeri 1'dir.

_MSC_FULL_VER

Büyük, küçük, değerlendirir ve derleyici 's sürüm numarası, numara bileşenlerini oluşturacaktır. Noktayla ayrılmış sürüm numarasının ilk bileşen başlıca sayıdır, ikinci bileşeni küçük sayıdır ve üçüncü bileşen derleme numarasıdır. Örneğin, 15.00.20706.01, Visual C++ derleyicisi sürüm numarası olan _MSC_FULL_VER 150020706 için makro değerlendirir. Type cl /? derleyici 's sürüm numarasını görüntülemek için komut satırında.

_MSC_VER

Büyük ve küçük numara bileşenleri derleyici 's sürüm numarası için değerlendirir. Büyük sayı noktayla ayrılmış sürüm numarasının ilk bileşenidir ve ikinci bileşeni küçük sayıdır.

Örneğin, 15.00.20706.01, Visual C++ derleyicisi sürüm numarası olan _MSC_VER makro 1500 değerlendirir.

De Visual Studio 2010, _MSC_VER 1600 tanımlanır.

__MSVC_RUNTIME_CHECKS

Ne zaman tanımlı birini /rtc derleyici seçenekleri belirtilir.

_MT

Ne zaman tanımlı /md veya /MDd (çok iş parçacıklı dll) veya /mt veya /MTd (Multithreaded) belirtilir.

_NATIVE_WCHAR_T_DEFINED

Ne zaman tanımlı /Zc:wchar_t kullanılır.

_OPENMP

Visual C++ tarafından uygulanan OpenMP belirtimi tarihini temsil eden bir tamsayı /OpenMP ile derleme döndürdüğünde tanımlanır.

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

_VC_NODEFAULTLIB

Ne zaman tanımlı /Zl kullanılır; Bkz: /Zl (Varsayılan kitaplık adını gözardı et) daha fazla bilgi için.

_WCHAR_T_DEFINED

Ne zaman tanımlı /Zc:wchar_t kullanılan veya wchar_t projenize dahil sistem üstbilgi dosyasında tanımlanır.

_WIN32

Win32 ve Win64 uygulamalar için tanımlanır. Her zaman tanımlı.

_WIN64

Win64 uygulamalar için tanımlanır.

_Wp64

Belirtirken tanımlanan /Wp64.

Aşağıdaki tabloda gösterildiği gibi derleyici İşlemci seçeneği belirtilen yansıtacak Önişlemci tanımlayıcıları için bir değer üretir.

_M_IX86 değerleri

Geliştirme ortamında seçeneği

Komut Satırı Seçeneği

Sonuç değeri

Karışım

/GB

_M_IX86 = 600(Varsayılan değer. Gelecekte derleyiciler baskın işlemci yansıtmak için farklı bir değer yayma.)

Pentium

/ G5

_M_IX86 = 500

Pentium Pro, Pentium II ve Pentium III

/ G6

_M_IX86 = 600

80386

/ G3

_M_IX86 = 300

80486

/ G4

_M_IX86 = 400

Ayrıca bkz.

Başvuru

Makrolar (c/C++)

Önişlemci işleçleri

Önişlemci yönergeleri