Предварительно определенные макросы

Список предопределенных макросов ANSI реализации Microsoft c и C++.

Компилятор распознает предопределенных макросов ANSI c и C++ реализация Майкрософт предоставляет несколько более.Эти макросы не принимает аргументы и не могут быть переопределены.Некоторые из предопределенных макросов, перечисленных ниже указаны с несколькими значениями.См. следующие таблицы дополнительные сведения.

Макросы предопределенные ANSI- Совместимыми

Макрос

Описание

__DATE__

Дата компиляции текущего файла источника.Дата строковый литерал формы Дд Ммм гггг.Имя Mmm месяца, такое же, как и для дат, создаваемые функцией библиотеки asctime объявленным в TIME.H.

__FILE__

Имя текущего файла источника.__FILE__ развернуть в строке окруженной двойные кавычки.Чтобы обеспечить полный путь к файлу отображается, используйте /FC (полный путь к файлу исходного кода в папке Diagnostics).

__LINE__

Номер линии в текущем файле источника.Номер линии десятичная константа целого числа.Его можно изменить с помощью директивы #line.

__STDC__

Отображает полное соответствие стандарту ANSI c#.Определяется как константа целого числа 1 только в том случае, если параметр компилятора /Za, и не компилировать код C++; в противном случае препроцессора.

__TIME__

Последнее время компиляции текущего файла источника.Время строковый литерал формы чч: мм: сс.

__TIMESTAMP__

Дата и время последнего изменения текущего файла источника, выраженный как строковый литерал в форме Чч даты ддд Ммм: мм: ss yyyy, где Ddd сокращенный день недели и дата целое число от 1 до 31.

Макросы предопределенные Конкретные Майкрософт-

Макрос

Описание

_ATL_VER

Идентифицирует версию библиотеки ATL.

в Visual Studio 2010, _ATL_VER определено как 0x1000.

_CHAR_UNSIGNED

По умолчанию тип char беззнаковый.Определен, если /J указано.

__CLR_VER

Определяет версию используемого среды CLR, когда приложение будет компилироваться.Возвращаемое значение будет в следующем формате:

Mmmbbbbb

Здесь:

  • M основной номер версии среды выполнения

  • mm дополнительный номер версии среды выполнения

  • bbbbb номер построения.

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

__cplusplus_cli

Определяется при компилировании с /clr, /clr:pure или /clr:safe.Значение __cplusplus_cli 200406.__cplusplus_cli действуют в течение всего единица преобразования.

// 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 на 1 и инкрементируя каждый момент он используется в файле источника или включенных заголовках исходного файла.__COUNTER__ запоминает свое состояние при использовании предкомпилированных заголовков.

В следующем примере используется __COUNTER__ чтобы присвоить уникальные идентификаторы до 3 различных объектов одного и того же типа.

Во-первых, рассмотрим следующее определение класса.Конструктор принимает целое число в качестве параметра.

В основе приложение объявляет 3 объекта типа exampleClass, используя __COUNTER__ как параметр уникального идентификатора.

__cplusplus

Указано только в программах C++.

_CPPRTTI

Указано для кода с /GR компилированного (предоставление информации о типах во время выполнения).

_CPPUNWIND

Определяется с /GX компилированного кода (включить обработку исключений).

_DEBUG

Определяется при компилировании с /LDd, /MDd и /MTd.

_DLL

Определен, если /MD или /MDd (многопотоковой библиотеки DLL).

__FUNCDNAME__

Допустимы только в функции.Определяет внутреннее имя включающего функции в виде строки.

__FUNCDNAME__ не развернут если используется параметр компилятора /EP или /P.

В следующем примере используется __FUNCDNAME__, __FUNCSIG__, и макросы __FUNCTION__ для отображения данных функции.

__FUNCSIG__

Допустимы только в функции.Определяет сигнатуру, включающего функции в виде строки.

__FUNCSIG__ не развернут если используется параметр компилятора /EP или /P.

На 64 разрядной операционной системе, соглашение о вызовах по умолчанию __cdecl.

Пример см. в разделе __FUNCDNAME__.

__FUNCTION__

Допустимы только в функции.Определяет упрощенного имени включающего функции в виде строки.

__FUNCTION__ не развернут если используется параметр компилятора /EP или /P.

Пример см. в разделе __FUNCDNAME__.

_INTEGRAL_MAX_BITS

Сообщает максимальный размер (в битах) для целого типа.

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

_M_ALPHA

(Больше не указано, поддерживаемых платформ АЛЬФЫ-ВЕРСИИ DEC).

_M_AMD64

Указано для процессоров x64.

_M_CEE

Указано для компиляции, которая использует любую форму /clr (/clr:oldSyntax, /clr:safe, например).

_M_CEE_PURE

Указано для компиляции, которая использует /clr:pure.

_M_CEE_SAFE

Указано для компиляции, которая использует /clr:safe.

_M_IX86

Указано для процессоров x86.См. таблицу ниже Values for _M_IX86 дополнительные сведения.Это не указан для процессоров x64.

_M_IA64

Указано для процессоров семейства процессоров Itanium 64 разрядных.

_M_ARM_FP

Разверните в значение, показывающее, параметру компилятора /arch использовал:

  • В диапазоне использовалось 30-39 если параметр РУКОЯТКИ /arch не задан, по умолчанию, для РУКОЯТКИ architecture (VFPv3).

  • В диапазоне 40-49 если /arch:VFPv4.

  • Дополнительные сведения см. в разделе /arch (x86).

_M_IX86_FP

Разверните в значение, показывающее, параметру компилятора /arch использовал:

  • 0, если /arch:IA32.

  • 1, если /arch:SSE.

  • 2, если /arch:SSE2.Это значение по умолчанию, если /arch не задано.

  • Дополнительные сведения см. в разделе /arch (x86).

_M_MPPC

(Больше не указано, поддерживаемых) платформ macintosh степень.

_M_MRX000

(Больше не указано, поддерживаемых платформ MIPS).

_M_PPC

(Больше не указано, поддерживаемых платформ PowerPC).

_M_X64

Указано для процессоров x64.

_MANAGED

Чтобы быть указано значение 1, если /clr указано.

_MFC_VER

Определяет версию MFC.Например, в Visual Studio 2010, _MFC_VER определено как 0x0A00.

_MSC_BUILD

Оценивает на компонент номера редакции номера версии компилятора.Номер редакции четвертого компонента период- разделенного номера версии.Например, если номер версии компилятора Visual C++ 15.00.20706.01, макрос _MSC_BUILD принимает значение 1.

_MSC_EXTENSIONS

Этот макрос определяется при компилировании с помощью параметра компилятора /Ze (по умолчанию)., Если он указан, его значение 1.

_MSC_FULL_VER

Результатом которого является майору, несовершеннолетнему и компонентам номер построения номера версии компилятора.Главный номер первого компонента период- разделенного номера версии, номер дополнительной компонент секунд, а номер построения третий компонент.Например, если номер версии компилятора Visual C++ 15.00.20706.01, макрос _MSC_FULL_VER устанавливается в 150020706.Введите в командной строке cl /? для просмотра номер версии компилятора.

_MSC_VER

Результатом которого является главным и небольшим компонентов числа номера версии компилятора.Главный номер первого компонента период- разделенного номера версии, а небольшой номер второй компонент.

Например, если номер версии компилятора Visual C++ 15.00.20706.01, макрос _MSC_VER устанавливается в 1500.

в Visual Studio 2010, _MSC_VER определено как 1600.

__MSVC_RUNTIME_CHECKS

Определен, если /RTC указание параметров компилятора.

_MT

Определен, если /MD или /MDd (многопотоковой библиотеки DLL) или /MT или /MTd (многопоточных) будут определены.

_NATIVE_WCHAR_T_DEFINED

Определен, если /Zc: wchar_t используется.

_OPENMP

Указан параметр /openmp, при компилировании с возвращениями целое число, представляющее дату спецификации OpenMP, реализованной в Visual C++.

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

_VC_NODEFAULTLIB

Определен, если /Zl используется; дополнительные сведения см. в разделе /Zl (Опущенное по умолчанию имя библиотеки).

_WCHAR_T_DEFINED

Определен, если /Zc: wchar_t используется или если wchar_t определенное в файле заголовка системы, включенного в проекте.

_WIN32

Указано для приложений для Win32 и Win64.Определяется всегда.

_WIN64

Указано для приложений, Win64.

_Wp64

Указан, определяющий /Wp64.

Как показано в таблице ниже, компилятор формирует значения идентификаторов препроцессора, которые отражают указанный параметр процессора.

Значения _M_IX86

Параметр " в интегрированной среде разработки

Параметр командной строки

Результирующее значение

Бленда

/GB

_M_IX86 = 600 (по умолчанию.Будущие компиляторы испустят другое значение, отражающее главного процессор).

Пентиум

/G5

_M_IX86 = 500

Пентиум профессиональный, Пентиум и Пентиум II III

/G6

_M_IX86 = 600

80386

/G3

_M_IX86 = 300

80486

/G4

_M_IX86 = 400

См. также

Ссылки

Макросы (C/C++)

Операторы препроцессора

Директивы препроцессора