Compartilhar via


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

  • M é a versão principal de tempo de execução

  • mm é a versão secundária de tempo de execução

  • bbbbb é o número de compilação.

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

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

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

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

Definido quando você compilar com /LDd, /MDd, e /MTd.

_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.

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

_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:

  • Em o intervalo 30-39 se nenhuma opção de ARM de /arch foi especificada, indicar a arquitetura padrão para o ARM foi usada (VFPv3).

  • Em o intervalo 40-49 se /arch:VFPv4 foi usado.

  • Consulte /arch (x86) para maiores informações.

_M_IX86_FP

Expanda um valor indicando o valor que opção de compilador /arch foi usada:

  • 0 se /arch:IA32 foi usado.

  • 1 se /arch:SSE foi usado.

  • 2 se /arch:SSE2 foi usado.Esse valor é o padrão se /arch não foi especificado.

  • Consulte /arch (x86) para maiores informações.

_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++.

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

_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

Consulte também

Referência

Macros (C/C++)

Operadores de pré-processador

Diretivas de pré-processador