__FILE__ : 记录当前文件名称(全路径)
__FUNCTION__ : 记录当前函数名称
__LINE__ : 记录当行数
还有很多很实用的宏,如下:最后分享一个本人的日志记录DLL
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 surrounded by double quotation marks. To ensure that the full path to the file is displayed, use /FC (Full Path of Source Code File in Diagnostics). You can create your own wide string version of __FILE__ as follows:
|
||||
__LINE__ |
The line number in the current source file. The line number is a decimal integer constant. It can be altered with a #line directive. |
||||
__STDC__ |
Indicates full conformance with the ANSI C standard. Defined as the integer 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. |
Macro |
Description |
||||
---|---|---|---|---|---|
_ATL_VER |
Defines the ATL version. |
||||
_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 will be in the following format: Mmmbbbbb where, M is the major version of the runtime. mm is the minor version of the runtime. bbbbb is the build number.
|
||||
__cplusplus_cli |
Defined when compiling with /clr, /clr:pure, or /clr:safe. Value of __cplusplus_cli is 200406. __cplusplus_cli is in effect throughout the translation unit.
|
||||
__COUNTER__ |
Expands to an integer starting with 0 and incrementing by 1 every time it is used in a compiland. __COUNTER__ remembers its state when using precompiled headers. If the last __COUNTER__ value was 4 after building a precompiled header (PCH), it will start with 5 on each PCH use. __COUNTER__ lets you generate unique variable names. You can use token pasting with a prefix to make a unique name. For example:
|
||||
__cplusplus |
Defined for C++ programs only. |
||||
_CPPLIB_VER |
Defined if you include any of the C++ Standard Library headers; reports which version of the Dinkumware header files are present. |
||||
_CPPRTTI |
Defined for code compiled with /GR (Enable Run-Time Type Information). |
||||
_CPPUNWIND |
Defined for code compiled with /GX (Enable Exception Handling). |
||||
_DEBUG |
Defined when compiling with /LDd, /MDd, and /MTd. |
||||
_DLL |
Defined when /MD or /MDd (Multithread DLL) is specified. |
||||
__FUNCDNAME__ |
Valid only within a function and returns the decorated name of the enclosing function (as a string). __FUNCDNAME__ is not expanded if you use the /EP or /P compiler option. |
||||
__FUNCSIG__ |
Valid only within a function and returns the signature of the enclosing function (as a string). __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. |
||||
__FUNCTION__ |
Valid only within a function and returns the undecorated name of the enclosing function (as a string). __FUNCTION__ is not expanded if you use the /EP or /P compiler option. |
||||
_INTEGRAL_MAX_BITS |
Reports the maximum size (in bits) for an integral type.
|
||||
_M_ALPHA |
Defined for DEC ALPHA platforms (no longer supported). |
||||
_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 x86 processors. See Values for _M_IX86 for more details. |
||||
_M_IA64 |
Defined for Itanium Processor Family 64-bit processors. |
||||
_M_IX86_FP |
Expands to a value indicating which /arch compiler option was used:
|
||||
_M_MPPC |
Defined for Power Macintosh platforms (no longer supported). |
||||
_M_MRX000 |
Defined for MIPS platforms (no longer supported). |
||||
_M_PPC |
Defined for PowerPC platforms (no longer supported). |
||||
_M_X64 |
Defined for x64 processors. |
||||
_MANAGED |
Defined to be 1 when /clr is specified. |
||||
_MFC_VER |
Defines the MFC version. For example, 0x0700 represents MFC version 7. |
||||
_MSC_EXTENSIONS |
This macro is defined when compiling with the /Ze compiler option (the default). Its value, when defined, is 1. |
||||
_MSC_VER |
Reports the major and minor versions of the compiler. For example, 1310 for Microsoft Visual C++ .NET 2003. 1310 represents version 13 and a 1.0 point release. The Visual C++ 2005 compiler version is 1400. Type cl /? at the command line to see the major and minor versions of your compiler along with the build 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, returns an integer 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. |
||||
_Wp64 |
Defined when specifying /Wp64. |
As shown in following table, the compiler generates a value for the preprocessor identifiers that reflect the processor option specified.
Option in Development Environment |
Command-Line Option |
Resulting Value |
---|---|---|
Blend |
/GB |
_M_IX86 = 600 (Default. Future compilers will emit a different value to reflect the dominant processor.) |
Pentium |
/G5 |
_M_IX86 = 500 |
Pentium Pro, Pentium II, and Pentium III |
/G6 |
_M_IX86 = 600 |
80386 |
/G3 |
_M_IX86 = 300 |
80486 |
/G4 |
_M_IX86 = 400 |