Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lists the predefined ANSI/ISO C99 and Microsoft C++ implementation preprocessor macros.
The compiler recognizes predefined ANSI/ISO C99 C preprocessor macros, and the Microsoft C++ implementation provides several more. These preprocessor macros take no arguments and cannot be redefined. Some of the predefined macros listed in this article are defined with multiple values.
ANSI-Compliant Predefined Macros
Macro |
Description |
|---|---|
__DATE__ |
The compilation date of the current source file. The date is a string literal of the form Mmm dd yyyy. The month name Mmm is the same as for dates generated by the library function asctime declared in TIME.H. |
__FILE__ |
The name of the current source file. __FILE__ expands to a string literal. To ensure that the full path to the file is displayed, use /FC (Full Path of Source Code File in Diagnostics). |
__func__ |
Returns the unqualified and unadorned name of the enclosing function as an array of char. |
__LINE__ |
The line number in the current source file. The line number is a decimal integer literal. It can be changed with a #line directive. |
__STDC__ |
Indicates conformance with the ANSI/ISO C99 standard. Defined as the integer literal constant 1 only if the /Za compiler option is given and you are not compiling C++ code; otherwise is undefined. |
__TIME__ |
The most recent compilation time of the current source file. The time is a string literal of the form hh:mm:ss. |
__TIMESTAMP__ |
The date and time of the last modification of the current source file, expressed as a string literal in the form Ddd Mmm Date hh:mm:ss yyyy, where Ddd is the abbreviated day of the week and Date is an integer from 1 to 31. |
Microsoft-Specific Predefined Macros
Macro |
Description |
|---|---|
_ATL_VER |
Defines the ATL version, encoded as an integer literal. |
__AVX__ |
Defined when /arch:AVX or /arch:AVX2 is specified. |
__AVX2__ |
Defined when /arch:AVX2 is specified. |
_CHAR_UNSIGNED |
Default char type is unsigned. Defined when /J is specified. |
__CLR_VER |
Defines the version of the common language runtime used when the application was compiled. The value returned is an integer literal encoded in the following format: Mmmbbbbb where,
|
__cplusplus_cli |
Defined when you compile with /clr, /clr:pure, or /clr:safe. Value of __cplusplus_cli is the integer literal 200406. __cplusplus_cli is in effect throughout the translation unit. |
__cplusplus_winrt |
Defined when you use the /ZW option to compile. The value of __cplusplus_winrt is the integer literal 201009. |
__COUNTER__ |
Expands to an integer literal starting with 0 and incrementing by 1 every time it is used in a source file or included headers of the source file. __COUNTER__ remembers its state when you use precompiled headers. The following example uses __COUNTER__ to assign unique identifiers to three different objects of the same type. First, assume the following class definition. The constructor takes an integer as a parameter.
In main, the application declares three objects of type exampleClass, using __COUNTER__ as the unique identifier parameter.
|
__cplusplus |
Defined for C++ programs only. |
_CPPRTTI |
Defined for code compiled with /GR (Enable Run-Time Type Information). |
_CPPUNWIND |
Defined for code compiled by using one of the /EH (Exception Handling Model) flags. |
_DEBUG |
|
_DLL |
Defined when /MD or /MDd (Multithreaded DLL) is specified. |
__FUNCDNAME__ |
Valid only in a function. Defines the decorated name of the enclosing function as a string literal. __FUNCDNAME__ is not expanded if you use the /EP or /P compiler option. The following example uses the __FUNCDNAME__, __FUNCSIG__, and __FUNCTION__ macros to display function information.
|
__FUNCSIG__ |
Valid only in a function. Defines the signature of the enclosing function as a string literal. __FUNCSIG__ is not expanded if you use the /EP or /P compiler option. On a 64-bit operating system, the calling convention is __cdecl by default. See __FUNCDNAME__ for an example. |
__FUNCTION__ |
Valid only in a function. Defines the undecorated name of the enclosing function as a string literal. __FUNCTION__ is not expanded if you use the /EP or /P compiler option. See __FUNCDNAME__ for an example. |
_INTEGRAL_MAX_BITS |
Reports the maximum size (in bits) for an integral type as an integer literal. |
_M_AMD64 |
Defined for compilations that target x64 processors. |
_M_ARM |
Defined for compilations that target ARM processors. |
_M_CEE |
Defined for a compilation that uses any form of /clr (/clr:oldSyntax, /clr:safe, for example). |
_M_CEE_PURE |
Defined for a compilation that uses /clr:pure. |
_M_CEE_SAFE |
Defined for a compilation that uses /clr:safe. |
_M_IX86 |
Defined for compilations that target x86 processors. This is not defined for x64 processors. |
_M_ARM_FP |
Expands to an integer literal value indicating which /arch compiler option was used:
|
_M_IX86_FP |
Expands to an integer literal value indicating which /arch compiler option was used:
|
_M_X64 |
Defined for compilations that target x64 processors. |
_MANAGED |
Defined to be 1 when /clr is specified. |
_MFC_VER |
Defines the MFC version, encoded as an integer literal. |
_MSC_BUILD |
Evaluates to an integer literal that contains the revision number component of the compiler's version number. The revision number is the fourth component of the period-delimited version number. For example, if the version number of the Visual C++ compiler is 15.00.20706.01, the _MSC_BUILD macro evaluates to 1. |
_MSC_EXTENSIONS |
This macro is defined when you compile with the /Ze compiler option (the default). Its value, when defined, is 1. |
_MSC_FULL_VER |
Evaluates to an integer literal that encodes the major, minor, and build number components of the compiler's version number. The major number is the first component of the period-delimited version number, the minor number is the second component, and the build number is the third component. For example, if the version number of the Visual C++ compiler is 15.00.20706.01, the _MSC_FULL_VER macro evaluates to 150020706. Type cl /? at the command line to view the compiler's version number. |
_MSC_VER |
Evaluates to an integer literal that encodes the major and minor number components of the compiler's version number. The major number is the first component of the period-delimited version number and the minor number is the second component. For example, if the version number of the Visual C++ compiler is 17.00.51106.1, the _MSC_VER macro evaluates to 1700. Type cl /? at the command line to view the compiler's version number. |
__MSVC_RUNTIME_CHECKS |
Defined when one of the /RTC compiler options is specified. |
_MT |
Defined when /MD or /MDd (Multithreaded DLL) or /MT or /MTd (Multithreaded) is specified. |
_NATIVE_WCHAR_T_DEFINED |
Defined when /Zc:wchar_t is used. |
_OPENMP |
Defined when compiling with /openmp, evaluates to an integer literal representing the date of the OpenMP specification implemented by Visual C++. |
_VC_NODEFAULTLIB |
Defined when /Zl is used; see /Zl (Omit Default Library Name) for more information. |
_WCHAR_T_DEFINED |
Defined when /Zc:wchar_t is used or if wchar_t is defined in a system header file included in your project. |
_WIN32 |
Defined for applications for Win32 and Win64. Always defined. |
_WIN64 |
Defined for applications for Win64. |