Macros predefinidas
Lista as macros predefinidos de ANSI C e implementação de O C++.
O compilador reconhece macros predefinidos ANSI C e a implementação de O C++ fornece vários mais.Esses macros não têm nenhum argumento e não podem ser reiniciados.Alguns dos macros predefinidos listados abaixo são definidos com vários valores.Veja as tabelas a seguir para mais informações.
Macros predefinidos ANSI-Compatíveis
Macro |
Descrição |
---|---|
__DATE__ |
A data de compilação do arquivo de origem atual.A data é uma cadeia de caracteres literal do formulário Dd Mmm aaaa.O nome do mês Mmm é o mesmo que as datas geradas pela função da biblioteca asctime declarado em TIME.H. |
__FILE__ |
O nome do arquivo de origem atual.__FILE__ expande para uma cadeia de caracteres cercada por aspas duplas.Para garantir que o caminho completo do arquivo seja exibido, use /FC (caminho completo do arquivo de código-fonte no diagnóstico). |
__LINE__ |
O número da linha no arquivo de origem atual.O número da linha é uma constante inteiro decimal.Pode ser alterada com uma política de #line . |
__STDC__ |
Indica a completa conformidade com o padrão de ANSI C.Definido como a constante inteiro 1 somente se a opção de compilador /Za é fornecida e você não são compilar o código C++; se não é indefinido. |
__TIME__ |
O tempo de compilação as mais recentes do arquivo de origem atual.O horário é uma cadeia de caracteres literal do formulário hh: mm: ss. |
__TIMESTAMP__ |
A data e hora da última modificação do arquivo de origem atual, expressa como uma cadeia de caracteres literal no formulário Hh de data DDD Mmm: mm: ss yyyy, onde DDD é abreviado do dia da semana e data é um inteiro de 1 a 31. |
Macros predefinidos vstemplate Específicos
Macro |
Descrição |
---|---|
_ATL_VER |
Define a versão de ATL. Em Visual Studio 2010, _ATL_VER é definido como 0x1000. |
_CHAR_UNSIGNED |
O tipo padrão de char é sem sinal.Quando é definido /J especificado. |
__CLR_VER |
Define a versão do common language runtime usado quando o aplicativo foi criado.O valor retornado será o seguinte formato: Mmmbbbbb , onde
|
__cplusplus_cli |
Definido quando você compilar com /clr, /clr:pure, ou /clr:safe.O valor de __cplusplus_cli é 200406.o __cplusplus_cli é aplicado em toda a unidade de conversão.
|
__COUNTER__ |
Expanda a um número inteiro que começa com 0 e que incrementa por 1 sempre que é usado em um arquivo de origem ou cabeçalhos incluídos do arquivo de origem.__COUNTER__ registros seu estado quando você usa cabeçalhos pré-compilados. O exemplo a seguir usa __COUNTER__ para atribuir identificadores exclusivos em três objetos diferentes do mesmo tipo. Primeiro, presuma a seguinte definição de classe.O construtor aceita um inteiro como um parâmetro.
O principal, o aplicativo declara três objetos do tipo exampleClass, usando __COUNTER__ como o parâmetro do identificador exclusivo.
|
__cplusplus |
Definido somente para programas C++. |
_CPPRTTI |
Definido para o código compilado com /GR (ativar informações tipo em tempo de execução). |
_CPPUNWIND |
Definido para o código compilado com /GX (habilitar a manipulação de exceção). |
_DEBUG |
|
_DLL |
Quando definida /MD ou /MDd (DLL) com vários segmentos é especificado. |
__FUNCDNAME__ |
Válido somente em uma função.Define adornado nome de função incluindo como uma cadeia de caracteres. __FUNCDNAME__ não é expandido se você usar a opção de compilador /EP ou de /P . O exemplo a seguir usa __FUNCDNAME__, __FUNCSIG__, e macros de __FUNCTION__ para exibir informações de função.
|
__FUNCSIG__ |
Válido somente em uma função.Define a assinatura de função incluindo como uma cadeia de caracteres. __FUNCSIG__ não é expandido se você usar a opção de compilador /EP ou de /P . Em um sistema operacional de 64 bits, a convenção de chamada é __cdecl por padrão. Consulte __FUNCDNAME__ para um exemplo. |
__FUNCTION__ |
Válido somente em uma função.Define o nome da função undecorated incluindo como uma cadeia de caracteres. __FUNCTION__ não é expandido se você usar a opção de compilador /EP ou de /P . Consulte __FUNCDNAME__ para um exemplo. |
_INTEGRAL_MAX_BITS |
Indica o tamanho máximo (nos bits) para um tipo integral.
|
_M_ALPHA |
Definido para as plataformas ALFA de DEC (não suportadas.) |
_M_AMD64 |
Definido para os processadores x64. |
_M_CEE |
Definido para uma compilação que usa qualquer formulário de /clr (/clr:oldSyntax, /clr:safe, por exemplo). |
_M_CEE_PURE |
Definido para uma compilação que usa /clr:pure. |
_M_CEE_SAFE |
Definido para uma compilação que usa /clr:safe. |
_M_IX86 |
Definido para os processadores x.Consulte a tabela de valores para _M_IX86 abaixo para mais informações.Isso não é definido para os processadores x64. |
_M_IA64 |
Definido para processadores de 64 bits da família do processador de Itanium . |
_M_ARM_FP |
Expanda um valor indicando o valor que opção de compilador /arch foi usada:
|
_M_IX86_FP |
Expanda um valor indicando o valor que opção de compilador /arch foi usada:
|
_M_MPPC |
Definido para as plataformas de código de energia (não suportadas.) |
_M_MRX000 |
Definido para as plataformas de MIPS (não suportadas.) |
_M_PPC |
Definido para as plataformas de PowerPC (não suportadas.) |
_M_X64 |
Definido para os processadores x64. |
_MANAGED |
Definido para ser 1 /clr quando é especificado. |
_MFC_VER |
Define a versão MFC.Por exemplo, em Visual Studio 2010, _MFC_VER é definido como 0x0A00. |
_MSC_BUILD |
Avalia para o componente do número de revisão do número de versão do compilador.O número de revisão é o quarto componente do número de versão período- associado.Por exemplo, se o número de versão do compilador do Visual C++ é 15.00.20706.01, a macro de _MSC_BUILD avaliará como 1. |
_MSC_EXTENSIONS |
Este macro é definida quando você compila com a opção de compilador /Ze (o padrão).O valor, quando é definido, 1. |
_MSC_FULL_VER |
Obtém a versão, ao menor, e a componentes do número de compilação do número de versão do compilador.O número da chave é o primeiro componente do número de versão período- associado, o número menor for o segundo componente, e o número de compilação é o terceiro componente.Por exemplo, se o número de versão do compilador do Visual C++ é 15.00.20706.01, a macro de _MSC_FULL_VER avaliará como 150020706.Digite cl /? na linha de comando para exibir o número de versão do compilador. |
_MSC_VER |
Obtém a versão principal e a componentes menores do número de versão do compilador.O número da chave é o primeiro componente do número de versão período- associado e o número menor for o segundo componente. Por exemplo, se o número de versão do compilador do Visual C++ é 15.00.20706.01, a macro de _MSC_VER avaliará como 1500. Em Visual Studio 2010, _MSC_VER é definido como 1600. |
__MSVC_RUNTIME_CHECKS |
Definido quando uma das opções do compilador de /RTC é especificado. |
_MT |
Quando definida /MD ou /MDd multisegmentados (DLL) ou /MT ou /MTd (Multithreaded) são especificados. |
_NATIVE_WCHAR_T_DEFINED |
Quando é definido /Zc: wchar_t usado. |
_OPENMP |
Definido para compilar com /openmp, retorna um número inteiro que representa a data da especificação de OpenMP implementada pelo Visual C++.
|
_VC_NODEFAULTLIB |
Quando é definido /Zl usado; consulte /ZL (omitir o nome da biblioteca padrão) para mais informações. |
_WCHAR_T_DEFINED |
Quando é definido /Zc: wchar_t usado ou se o wchar_t é definido em um arquivo de cabeçalho do sistema incluído no seu projeto. |
_WIN32 |
Definido para aplicativos para o Win32 e Win64.Sempre definido. |
_WIN64 |
Definido para aplicativos para Win64. |
_Wp64 |
Definido para especificar /Wp64. |
Conforme mostrado na tabela da, o compilador gera um valor para os identificadores pré-processamento que refletem a opção do processador especificada.
Valores para _M_IX86
Opção no ambiente de desenvolvimento |
Opção de linha de comando |
Valor resultante |
---|---|---|
Misturando |
/GB |
_M_IX86 = 600 (opção.Compiladores futuros emitir-se-ão um valor diferente para refletir o processador dominante.) |
Pentium |
/G5 |
_M_IX86 = 500 |
Pentium para, Pentium II, e Pentium III |
/G6 |
_M_IX86 = 600 |
80386 |
/G3 |
_M_IX86 = 300 |
80486 |
/G4 |
_M_IX86 = 400 |