Macros predefinidas
Muestra las macros predefinidas de ANSI C y de la implementación de Microsoft C++.
El compilador reconoce las macros predefinidas ANSI C y la implementación de Microsoft C++ proporciona varios más.Estas macros no toman ningún argumento y no se pueden volver a definir.Algunas de las macros predefinidas enumeradas abajo se definen con varios valores.Consulte las tablas siguientes para obtener más información.
Macros predefinidas ANSI- bajo
Macro |
Descripción |
---|---|
__DATE__ |
Fecha de compilación del archivo de código fuente actual.La fecha es un literal de cadena con el formato dd MMM yyyy.El nombre de mes MMM es igual como por fechas generadas por la función de biblioteca asctime declarado en TIME.H. |
__FILE__ |
El nombre del archivo de código fuente actual.__FILE__ se expande a una cadena entre comillas.Para asegurarse de que la ruta de acceso completa al archivo está presente, utilice /FC (Ruta de acceso completa de archivo de código fuente en diagnósticos). |
__LINE__ |
El número de línea en el archivo de código fuente actual.El número de línea es una constante entera decimal.Se puede cambiar con una directiva de #line . |
__STDC__ |
Indica la conformidad completa con el estándar de ANSI C.Definido como la constante entera 1 únicamente si se especifica la opción del compilador /Za y no están compilando el código de C++; si no está definido. |
__TIME__ |
El tiempo de compilación más reciente del archivo de código fuente actual.El tiempo es un literal de cadena con el formato hh: mm: ss. |
__TIMESTAMP__ |
Fecha y hora de modificación del archivo de código fuente actual, expresado como un literal de cadena con el formato Hh de fecha de DDD Mmm: mm: ss yyyy, donde es el día DDD abreviado de la semana y de Fecha es un número entero de 1 a 31. |
Macros predefinidas Microsoft-Específicas
Macro |
Descripción |
---|---|
_ATL_VER |
Define la versión ATL. En Visual Studio 2010, _ATL_VER se define como 0x1000. |
_CHAR_UNSIGNED |
El tipo predeterminado de char es sin signo.Se define cuando se especifica /J . |
__CLR_VER |
Define la versión de Common Language Runtime se usa cuando la aplicación se compiló.El valor devuelto está en el formato siguiente: Mmmbbbbb donde
|
__cplusplus_cli |
Se define cuando se compila con /clr, /clr:pure, o /clr:safe.El valor de __cplusplus_cli es 200406.El __cplusplus_cli está vigente en la unidad de traducción.
|
__COUNTER__ |
Expanda un entero que empieza por 0 y se incrementa en 1 cada vez que se utiliza en un archivo de código fuente o encabezados incluidos del archivo de código fuente.__COUNTER__ recuerda a su estado cuando utiliza encabezados precompilados. El ejemplo siguiente utiliza __COUNTER__ para asignar identificadores únicos a tres diferentes objetos del mismo tipo. Primero, suponga la siguiente definición de clase.El constructor toma un entero como parámetro.
En main, la aplicación declara tres objetos de exampleClassescrito, mediante __COUNTER__ como parámetro de identificador único.
|
__cplusplus |
Definido para los programas de sólo C++. |
_CPPRTTI |
Definido para el código compilado con /GR (información de tipo habilitada en tiempo de ejecución). |
_CPPUNWIND |
Definido para el código compilado con /GX (control de excepciones de permisos). |
_DEBUG |
|
_DLL |
Se define cuando se especifica /MD o /MDd Multiproceso (DLL). |
__FUNCDNAME__ |
Solo es válido en una función.Define nombre representativo de la función que agrega como cadena. __FUNCDNAME__ no se expande si utiliza la opción del compilador de /EP o de /P . El ejemplo siguiente utiliza __FUNCDNAME__, __FUNCSIG__, y las macros de __FUNCTION__ para mostrar la información de la función.
|
__FUNCSIG__ |
Solo es válido en una función.Define la signatura de la función que agrega como cadena. __FUNCSIG__ no se expande si utiliza la opción del compilador de /EP o de /P . En un sistema operativo de 64 bits, la convención de llamada es __cdecl de forma predeterminada. Vea __FUNCDNAME__ para obtener un ejemplo. |
__FUNCTION__ |
Solo es válido en una función.Define el nombre representativo de la función que agrega como cadena. __FUNCTION__ no se expande si utiliza la opción del compilador de /EP o de /P . Vea __FUNCDNAME__ para obtener un ejemplo. |
_INTEGRAL_MAX_BITS |
Designa el tamaño máximo (en bits) para un tipo entero.
|
_M_ALPHA |
Definido para plataformas Alpha de DEC (compatibles no más). |
_M_AMD64 |
Definido para los procesadores x64. |
_M_CEE |
Definido para una compilación que utiliza cualquier formulario de /clr (/clr:oldSyntax, /clr:safe, por ejemplo). |
_M_CEE_PURE |
Definido para una compilación que utiliza /clr:pure. |
_M_CEE_SAFE |
Definido para una compilación que utiliza /clr:safe. |
_M_IX86 |
Definido para los procesadores x86.Vea la tabla de valores para _M_IX86 siguiente para obtener más información.Esto no se define para los procesadores x64. |
_M_IA64 |
Definido para los procesadores de 64 bits de la familia de procesadores de Itanium . |
_M_ARM_FP |
Expanda un valor que indica qué opción del compilador /arch se utilizó:
|
_M_IX86_FP |
Expanda un valor que indica qué opción del compilador /arch se utilizó:
|
_M_MPPC |
Definidos para las plataformas de Power Macintosh (compatibles no más). |
_M_MRX000 |
Definidos para las plataformas de MIPS (compatibles no más). |
_M_PPC |
Definido para plataformas PowerPC (compatibles no más). |
_M_X64 |
Definido para los procesadores x64. |
_MANAGED |
Definido en 1 cuando se especifica /clr . |
_MFC_VER |
Define la versión de MFC.Por ejemplo, en Visual Studio 2010, _MFC_VER se define como 0x0A00. |
_MSC_BUILD |
Evalúa el componente de número de revisión del número de versión del compilador.El número de revisión es el cuarto componente de número de versión período- delimitado.Por ejemplo, si el número de versión del compilador de Visual C++ es 15.00.20706.01, la macro de _MSC_BUILD se evalúa como 1. |
_MSC_EXTENSIONS |
Se define esta macro cuando se compila con la opción del compilador /Ze (valor predeterminado).Su valor, cuando está definido, es 1. |
_MSC_FULL_VER |
Evalúa el principal, el menor, y componentes del número de compilación del número de versión del compilador.El número principal es el primer componente de número de versión período- delimitados, el número de secundaria es el segundo componente, y el número de compilación es el tercer componente.Por ejemplo, si el número de versión del compilador de Visual C++ es 15.00.20706.01, la macro de _MSC_FULL_VER se evalúa como 150020706.Escriba cl /? en la línea de comandos para ver el número de versión del compilador. |
_MSC_VER |
Evalúa los componentes principales y secundaria del número del número de versión del compilador.El número principal es el primer componente de número de versión período- delimitado y el número de secundaria es el segundo componente. Por ejemplo, si el número de versión del compilador de Visual C++ es 15.00.20706.01, la macro de _MSC_VER se evalúa como 1500. En Visual Studio 2010, _MSC_VER se define como 1600. |
__MSVC_RUNTIME_CHECKS |
Define cuando una de las opciones del compilador /RTC se especifica. |
_MT |
Se define cuando se especifica /MD o /MDd (Multiproceso DLL) o /MT o /MTd (Multiproceso). |
_NATIVE_WCHAR_T_DEFINED |
Se define cuando se utiliza /Zc: wchar_t . |
_OPENMP |
Definido al compilar con /openmp, la cual el entero que representa la fecha de la especificación de OpenMP implementada por Visual C++.
|
_VC_NODEFAULTLIB |
Se define cuando se utiliza /Zl ; vea /Zl (Omitir nombres de biblioteca predeterminada) para obtener más información. |
_WCHAR_T_DEFINED |
Se define cuando se utiliza /Zc: wchar_t o si wchar_t se define en un archivo de encabezado de sistema incluido en su proyecto. |
_WIN32 |
Definido para aplicaciones Win32 y Win64.Siempre definido. |
_WIN64 |
Se define para las aplicaciones para Win64. |
_Wp64 |
Definido al especificar /Wp64. |
Como se muestra en la tabla siguiente, el compilador genera un valor para los identificadores de preprocesador que reflejan la opción de procesador especificada.
Valores para _M_IX86
Opción en el entorno de desarrollo |
Opción de la línea de comandos |
Valor resultante |
---|---|---|
Combinación |
/GB |
_M_IX86 = 600 (valor predeterminado.Los compiladores futuros emitirán un valor diferente para reflejar el procesador clave). |
Pentium |
/G5 |
_M_IX86 = 500 |
Pentium Pro, Pentium II, y Pentium III |
/G6 |
_M_IX86 = 600 |
80386 |
/G3 |
_M_IX86 = 300 |
80486 |
/G4 |
_M_IX86 = 400 |