The compiler recognizes six predefined ANSI(American National Standards Institute) C macros
Table 1.1 ANSI Predefined Macros
__DATE__ // 当前源文件的编译日期。日期是格式为Mmm dd yyyy的字符串文字。月名Mmm与库函数asctime在time.h 中声明的日期相同。
__FILE__ // 当前源文件的名称__FILE__;扩展为一个由双引号包围的字符串。
__LINE__ // 当前源文件中的行号。行号是一个十进制整数常量。可以使用 #line 指令对其进行更改。
__STDC__ // 表示完全符合ANSI C标准。仅当给定/ZA编译器选项而不编译C++代码时,定义为整数常量1;否则是未定义的。
__TIME__ // 当前源文件的最近编译时间。时间是hh:mm:ss形式的字符串文字。
__TIMSTAMP__ // 上次修改当前源文件的日期和时间,以字符串形式表示,格式为Ddd Mmm date hh:mm:ss yyyy,其中Ddd是一周中的缩写日期,date是1到31之间的整数。
Table 1.2 Microsoft-Specific Predefined Macros
__cplusplus // 仅为 C++ 程序(.cpp)时定义。
_DLL // 在指定/MD或/MDd(多线程DLL)时定义。
_M_IX86 // 为x86处理器定义。see table 1.3 for more details.
_MFC_VER // 定义MFC版本。MFC 4.21(Microsoft Foundation Class Library) 被定义为 0x0421。always defined.
_MSC_VER // 定义编译器版本。microsoft visual C++ 6 定义为 1200。always defined.
_MT // 在指定/MD或/MDd(多线程DLL)或/MT或/MTd(多线程)时定义。
_WIN32 // 为Win32®应用程序定义。always defined.
... ... // ... ...