_MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值(参见扩展阅读中的参考文献2的链接)
MS VC++ 10.0 _MSC_VER = 1600 MS VC++ 9.0 _MSC_VER = 1500 MS VC++ 8.0 _MSC_VER = 1400 MS VC++ 7.1 _MSC_VER = 1310 MS VC++ 7.0 _MSC_VER = 1300 MS VC++ 6.0 _MSC_VER = 1200 MS VC++ 5.0 _MSC_VER = 1100 其中MS VC++ 10.0就是Visual C++ 2010,MS VC++ 9.0就是Visual C++ 2008,MS VC++ 8.0就是Visual C++ 2005。可以通过当前使用的MS VC++编译器的版本信息来推断当前编译器预定义的 _MSC_VER 值。_MSC_VER 的值是由 MS VC++ 编译器的主版本号和次版本号构成的,其中主版本号是以“.”分割的版本号信息中的第一部分,而次版本号为其中的第二部分。例如,假设当前那使用的Visual C ++编译器的版本号是15.00.20706.01(MS VC++ 2008),那么其主版本号就是为“15”,而次版本号就是为“00”,因此当前编译器预定义的 _MSC_VER 宏的值就为1500。
参考:1、http://baike.baidu.com/view/1276757.htm
2、http://msdn.microsoft.com/en-us/library/b0084kay.aspx