Aprovado: Fortect
Se você viu #ifdef win32 msdn, este artigo pode ajudar as pessoas.
__ATOM__
Definido como 1 se / Favor: ATOM
for uma opção do compilador e uma de nossas os alvos do compilador são x86 Onde … é x64. Caso contrário, indefinido.
__AVX__
Conforme definido 1 se para cada arco: AVX
, / mid-foot: AVX2
e até mesmo as sugestões do compilador / arch: AVX512
foram definidas e o destino do compilador é x86 alternativamente de x64. Caso contrário, indefinido.
__AVX2__
Definido como 1 se um de seus / arch: AVX2
ou talvez um / arch : AVX512
O compilador de opções é tv e o compilador ideal é x86 ou possivelmente x64. Caso contrário, indefinido.
__AVX512BW__
Definido como 1, se você for o compilador / arch: AVX512
, a solução está definida e o compilador – O destino sempre foi x86 ou pode ser x64. Caso contrário, indefinido.
< / h2>Em C nativo, a diretiva #ifdef permite a compilação condicional. O pré-processador determina se uma macro fornecida existe antes que o código subsequente específico seja incluído no processo de coleta.
__AVX512CD__
Definido como 1 obviamente se este / arch: AVX512
compilador opção é definida e o compilador específico é x86 ou x64. Caso contrário, indefinido.
__AVX512DQ__
Conforme definido 1 se a opção do compilador do mundo real / arch: AVX512
estiver definida e o destino do compilador global x86 ou x64. Caso contrário, indefinido.
O que é macro _WIN32?
__AVX512F__
Definido como 1 se a chance do compilador / arch: avx512
é normalmente definido e o destino do compilador é x86 nem x64. Caso contrário, indefinido.
O que é _WIN32_WINNT?
__AVX512VL__
Definido como 1 se a resolução do compilador estiver configurada para / arch: AVX512
junto com o compilador de destino é x86 muito poderoso. e / ou. é x64. Caso contrário, indefinido.
_CHAR_UNSIGNED
Definido porque 1 é certamente um tipo padrão se char
pudesse ser definitivamente sem sinal. Este valor é definido se todo o compilador / J
(tipo de individualidade sem sinal padrão) for definido no parâmetro de conceito. Caso contrário, indefinido.
__CLR_VER
Definido porque um literal inteiro representa a publicação CLR usada para compilar o aplicativo. O valor excelente é realmente codificado em Mmmbbbb
, expressamente onde M
é a tradução principal do leitor, mm
é sua versão secundária de todo o tempo de execução , juntamente com bbbbb
– soma de construção. __CLR_VER
é definitivamente definido se a resposta do compilador agora é / clr
. Caso contrário, indefinido.
// clr_ver.cpp// construir com: / clrUsando todo o sistema de namespace;int main () Console :: WriteLine (__ CLR_VER);
< / h2>A diretiva #ifdef controla a compilação condicional envolvendo um arquivo de recurso de alto desempenho verificando o nome distinto. Se o nome não for especificado, #ifdef instrui o compilador a ignorar as instruções até as próximas #endif informações.
_CONTROL_FLOW_GUARD
Definido como 1 se cada rotina do compilador de fluxo for considerada / guard: cf
( Habilite a Proteção de Controle) . Caso contrário, indefinido.
__COUNTER__
Expande-se para um grande inteiro literal A que cria em 0. O tratamento é aumentado em um único cada vez que é usado no arquivo de obtenção ou em cabeçalhos incluídos do mais significativo arquivo de elemento. __COUNTER__
se lembra de quando você recebe cabeçalhos pré-compilados. Normalmente, esta macro é definida literalmente. Exemplo
__COUNTER__
é sempre usado aqui para atribuir identificadores extraordinários a seis objetos idênticos diferentes. exampleClass
usa o construtor Wonderful Integer específico como parâmetro. Em main
, o dispositivo declara três tipos de objetos exampleClass
e usa __COUNTER__
como o parâmetro identificador exclusivo:
O WIN32 é definido em torno dos arquivos de tags h2 do Windows, mas você também pode passá-lo para o compilador (por exemplo, “-DWIN32” para gcc).
// macro __COUNTER __. Demo cpp// por meio de __COUNTER__ atribuir identificadores únicos// vários objetos do mesmo tipo.// Compilando com: cl / EHsc / W4 macro__COUNTER __. Cpp#include Classe de classe de exemplo int m_nID;publicamente: // Inicializa o objeto com um identificador único somente leitura exampleClass (int nID): m_nID (nID) int GetID (void) return m_nID;;int dominante () // __COUNTER__ é antes de tudo definido como 0 exemploClasse e1 (__ CONTADOR__); // Para o segundo link principal __COUNTER__ agora está listado uma vez 1 ExemploClasse e2 (__ CONTADOR__); // __COUNTER__ é definido como 2 neste momento exemploClasse e3 (__ CONTADOR__); printf ("e1.ID:% which i n", e1.GetID ()); printf ("e2% i n", #: e2.GetID ()); printf ("e3% i n", detecção: e3.GetID ()); // Sair // ------------------------------------------- // Identificador e1: 0 // ID e2: 1 // ID e3: 2 Retorna 0;
__cplusplus_cli
Definido como grande valor real inteiro 200406 quando compilado em C ++, também definido como opção do compilador ou clr
. Caso contrário, indefinido. Se fornecido, __cplus_cli
está ativo na unidade de interpretação.
// cplusplus_cli.cpp// compilar agora com "stdio / clr."# include.h "int main () #ifdef __cplusplus_cli printf ("% d n", __cplusplus_cli); #outro printf ("indefinido n"); #fim se
__cplusplus_winrt
Definido como uma taxa real de número inteiro 201009 quando compilado em C ++ e extremamente / ZW
(compilando Windows Runtime) – A opção do compilador está definida requer uma dúvida. Caso contrário, indefinido.
_CPPRTTI
Definido como 1, você pode definir cada opção do compilador / GR
(incluir informações de ensinamentos) . Em produção, caso contrário, não definido.
Aprovado: Fortect
Fortect é a ferramenta de reparo de PC mais popular e eficaz do mundo. Milhões de pessoas confiam nele para manter seus sistemas funcionando de forma rápida, suave e livre de erros. Com sua interface de usuário simples e mecanismo de verificação poderoso, o Fortect localiza e corrige rapidamente uma ampla gama de problemas do Windows, desde instabilidade do sistema e problemas de segurança até gerenciamento de memória e gargalos de desempenho.
_CPPUNWIND
Definido como um apenas se um ou mais desses tipos / GX
(permitir tratamento de exceção) < / a>, / clr
Linguagem (compilação geral dos ensinamentos) ou / EH
(modelo de tratamento de exceções) O as opções do compilador são, sem dúvida, definidas. Caso contrário, indefinido.
_DEBUG
Definido como 1 se / MDd
, / ldd
ou simplesmente talvez até a opção do compilador / MTd
esteja definida. Caso contrário, indefinido.
_DLL
Definido como único se / MD
muito possivelmente (multithreaded / mdd
DLL) Obtenha a opção do compilador. Caso contrário, indefinido.
__FUNCDNAME__
Define o valor apropriado como uma string que contém inquestionavelmente o nome decorado da capacidade inclusiva da pessoa. A macro é necessária apenas em um recurso. A macro __FUNCDNAME__
realmente se expande no momento em que você adiciona / EP
para / P
Use a opção compilador.
Este exemplo usa um único __FUNCDNAME__
, __FUNCSIG__
, __FUNCTION__
para exibir informações sobre a oferta.
// Demonstração da funcionalidade das macros __FUNCTION__, __FUNCDNAME__ além disso __FUNCSIG__void exampleFunction () printf ("Nome da função:% s n", __FUNCTION__); printf ("Nome da função decorada:% s n", __FUNCDNAME__); printf ("Função de assinatura:% n", __FUNCSIG__); // instância de saída // ------------------------------------------------ - Função // Nome: exampleFunction // Nome da função a animar :? Exemplo @@ Função YAXXZ Função // Assinatura: void __cdecl exampleFunction (void)
__FUNCSIG__
Definido até mesmo como seu literal de string contendo o visto da função de anexação. Uma macro só deve ser definida aqui em uma função. A macro __FUNCSIG__
executa e não expande se você usar o / ep
para cada P
. Quando coletados para um alvo de 64 bits, a chamada dos ensinamentos é padronizada para __cdecl
. Você pode ver um exemplo de uso relacionado na macro __FUNCDNAME__
.
__FUNCTION__
Definido como um literal de string contendo o nome profissional totalmente qualificado da função envolvente, sem decoração. A macro é definida apenas dentro do destino. macro__FUNCTION__
não se expande se sua família completa for / EP
provavelmente / P
<. consumir / a> compilador de boa sorte. Você pode adquirir um exemplo de seu uso na maior parte da macro __FUNCDNAME__
.
_INTEGRAL_MAX_BITS
Definido como o valor inteiro atual 64, tamanho da cúpula em bits (em para um tipo inteiro não vetorial. Esta macro é freqüentemente sempre definida.
// integral_max_bit.cpp#include
Acelere o desempenho do seu computador agora com este simples download.int main () printf ("% d n", definido como resultado de _integral_max_bits); Onde o WIN32 é definido?