Aprobado: Fortect
Si ha notado #ifdef win32 msdn, este artículo específico puede ayudarlo.
__ATOM__
Definido como 1 tal vez / Favor: ATOM
es solo una opción del compilador y cada uno de el objetivo del compilador de una persona es x86 Donde … es x64. De lo contrario, indefinido.
__AVX__
Como se entiende 1 si / arch: AVX
, / arch: AVX2
además, incluso las opciones del compilador por arco: AVX512
están configuradas y, en general, el objetivo del compilador es x86 en lugar de x64. De lo contrario, indefinido.
__AVX2__
Definido considerando que 1 si uno de nuestros - arch: AVX2
o versus arch: AVX512
El compilador de opciones es sin duda tv y el compilador de destino es x86 o, a veces, posiblemente x64. De lo contrario, indefinido.
__AVX512BW__
Definido como 1, si tal vez eres el compilador / foot posture: AVX512
, la opción también está configurada por el compilador: el destino es x86, o podría ser x64. De lo contrario, indefinido.
< / h2>En C nativo, la información #ifdef habilita la compilación condicional. El preprocesador determina si la macro proporcionada en particular existe antes de que esa contraseña posterior particular se incluya en el proceso de compilación.
__AVX512CD__
Definido como 1 si esta opción del compilador arch: AVX512
es sin preguntas y el objetivo del compilador es x86 o tal vez x64. De lo contrario, indefinido.
__AVX512DQ__
Como se define 1 si la variedad real del compilador / arch: AVX512
es específica y el objetivo global del compilador es x86 o, a veces, x64 . De lo contrario, indefinido.
¿Qué ¿debería ser la macro _WIN32?
__AVX512F__
Definido debido a 1 si la opción del compilador arch: avx512
está configurado y algún tipo de destino del compilador es x86 o x64. De lo contrario, indefinido.
¿Qué es ciertamente _WIN32_WINNT?
__AVX512VL__
Definido como 1 si nuestra propia resolución del compilador está configurada en - arch: AVX512
y la atención al compilador es x86 muy potente. o. es x64. De lo contrario, indefinido.
_CHAR_UNSIGNED
Definido porque 1 es una clasificación estándar si char
definitivamente no está firmado. Este valor se establece si el para cada compilador J
(tipo de carácter estándar sin firmar) realmente se establece en el parámetro de la regla. De lo contrario, indefinido.
__CLR_VER
Definido porque el literal entero excelente representa la publicación CLR utilizada para compilar la aplicación. El valor está realmente protegido en Mmmbbbb
, específicamente donde M
es la versión principal del ereader, mm
es la versión secundaria de todo el tiempo de ejecución y bbbbb
– forma suma. __CLR_VER
establece el evento real de que la respuesta del compilador es per clr
. De lo contrario, indefinido.
// clr_ver.cpp// fabricar con: / clrUsando el sistema de espacio de nombres;int serio () Consola :: WriteLine (__ CLR_VER);
< / h2>La instrucción #ifdef controla la compilación condicional de un archivo de sistema de alto rendimiento comprobando el nombre especificado. Si ese nombre no está especificado, #ifdef le dice al compilador que lo ayude a ignorar las instrucciones hasta la próxima información #endif.
_CONTROL_FLOW_GUARD
Definido como 1 si todas y cada una de las rutinas del compilador de flujo son / protect: cf
(Habilitar Control Guard) . De lo contrario, indefinido.
__COUNTER__
Se expande a un entero literal grande A que comienza en 0. El tratamiento aumenta en 1 cada vez que se usa esta situación en el archivo fuente o con encabezados incluidos en el archivo del elemento principal . __COUNTER__
recuerda su estado cuando recibe encabezados precompilados. Esta macro suele estar definida. Ejemplo
__COUNTER__
se utiliza aquí cuando necesita asignar identificadores extraordinarios a tres cuerpos idénticos diferentes. exampleClass
usa el constructor Wonderful Integer como parámetro. En main
, un dispositivo declara tres tipos de herramientas exampleClass
y usa __COUNTER__
como el parámetro de identificador único:
WIN32 debe definirse alrededor de los archivos de encabezado de Windows, pero una persona puede pasarlo al compilador con éxito (por ejemplo, “-DWIN32” para gcc).
// macro __COUNTER __. Demo cpp// de __COUNTER__ asignar identificadores fabulosos// varios objetos del mismo tipo.// Compilando para: cl / EHsc / W4 macro__COUNTER __. CPP#include Clase de ejemplo clase int m_nID;en público: // Inicializa el objeto con un identificador único de solo lectura exampleClass (int nID): m_nID (nID) int GetID (void) return m_nID;;int main () // __COUNTER__ se define inicialmente mediante 0 exampleClass e1 (__ COUNTER__); // Para el segundo sitio, __COUNTER__ ahora aparece como 1 ExampleClass e2 (__ COUNTER__); // __COUNTER__ se define como 2 en ese momento exampleClass e3 (__ COUNTER__); printf ("e1.ID:% i n", e1.GetID ()); printf ("e2% ahora i n", #: e2.GetID ()); printf ("e3% i n", detección: e3.GetID ()); // Cerrar sesión // ------------------------------------------- // Identificador e1: 0 // ID e2: 1 // ID e3: 2 Devuelve 0;
__cplusplus_cli
Definido como una cantidad real entera 200406 cuando se compila en C ++, también extraído como la opción del compilador / clr
. De lo contrario, indefinido. Si se define, __cplus_cli
es casi seguro que está activo en la unidad de traducción.
// cplusplus_cli.cpp// compila con "stdio / clr".# include.h "int main () #ifdef __cplusplus_cli printf ("% n n", __cplusplus_cli); #otro printf ("indefinido n"); #terminara si
__cplusplus_winrt
Definido como un valor real entero 201009 cuando se desarrolla en C ++ y exacto frente a ZW
(compilando Windows Runtime) – La opción del compilador está configurada sin lugar a dudas. De lo contrario, indefinido.
_CPPRTTI
Definido sobre la base de que 1, puede configurar el sistema de compilación / GR
(incluir información de tiempo de ejecución) . En producción De lo contrario, no definido.
Aprobado: Fortect
Fortect es la herramienta de reparación de PC más popular y eficaz del mundo. Millones de personas confían en él para mantener sus sistemas funcionando de forma rápida, fluida y sin errores. Con su sencilla interfaz de usuario y su potente motor de análisis, Fortect encuentra y soluciona rápidamente una amplia variedad de problemas de Windows, desde la inestabilidad del sistema y los problemas de seguridad hasta la gestión de la memoria y los cuellos de botella en el rendimiento.
_CPPUNWIND
Definido como 1 solo si uno o más de estos / GX
(permiten el manejo de excepciones) < / a>, - clr
Language (compilación general en tiempo de ejecución) además de / EH
(modelo de maniobra de excepción) Las opciones del compilador están definidas. De lo contrario, indefinido.
_DEBUG
Definido como solo uno si / MDd
, / ldd
o tal vez esencialmente se establece la alternativa del compilador / MTd
. De lo contrario, indefinido.
_DLL
Definido como 1 si por MD
o incluso (multiproceso / mdd
DLL) Obtiene la opción del compilador. De lo contrario, indefinido.
__FUNCDNAME__
Define el valor real como la mejor cadena que contiene el nombre de la persona decorada de la función inclusiva de la persona. La macro realmente solo se requiere en una función. La macro __FUNCDNAME__
realmente se expande cuando integra / EP
a o P
. Utilice la compilador de variedades.
Este ejemplo utiliza __FUNCDNAME__
, __FUNCSIG__
, __FUNCTION__
específicos para expresar información sobre la oferta.
// Demostración de las funciones de macros __FUNCTION__, __FUNCDNAME__ e incluso __FUNCSIG__void exampleFunction () printf ("Nombre de la función:% s i9000 n", __FUNCTION__); printf ("Nombre de la operación decorada:% s n", __FUNCDNAME__); printf ("Función de firma:% s n", __FUNCSIG__); // salida de ejemplo // ------------------------------------------------ - Función // Nombre: exampleFunction // Nombre de la función a decorar :? Ejemplo de función @@ YAXXZ Función // Firma: inútil __cdecl exampleFunction (void)
__FUNCSIG__
Definido incluso cuando una cadena literal hace uso de la visa de la función adjunta. Una macro solo debe definirse en una función. La macro __FUNCSIG__
no se expande como si se usara la / air
/ P
. Cuando se recopila para ese objetivo de 64 bits, el tiempo de ejecución de la llamada se establece de forma predeterminada en __cdecl
. Puede encontrar un ejemplo de tasa de consumo de combustible relacionado en la macro __FUNCDNAME__
.
__FUNCTION__
Definido como un literal de serie que contiene el nombre completo de todas las funciones adjuntas, sin decoración. La macro se define individualmente dentro del objetivo. macro__FUNCTION__
cómo no puede expandirse si toda su familia puede / EP
o por P
<. use / a> compilador de buena suerte. Puede encontrar un ejemplo que apunta a su uso en la macro __FUNCDNAME__
.
_INTEGRAL_MAX_BITS
Definido como cualquier valor entero actual 64, tamaño máximo en tareas (en para un tipo entero no vectorial. Esta macro a menudo siempre se define.
// integral_max_bit.cpp#include
Acelere el rendimiento de su computadora ahora con esta simple descarga.int main () printf ("% r n", definido por _integral_max_bits); ¿Dónde se define WIN32?