_MSC_VER[Microsoft C/C++编译器版本预定义宏]

_MSC_VER是Microsoft C/C++编译器版本预定义宏。

_MSC_VER可以分解为:
MS:Microsoft的简写。
C:MSC就是Microsoft的C/C++编译器。
VER:Version的简写。

_MSC_VER的意思就是:Microsoft的C/C++编译器版本预定义宏。


百度百科

http://baike.baidu.com/link?url=HVcAjShyVzzDpvQ1sHEASxZWv-K-WUZL6jfalsTTtKxPWunMubs5TiEegihA4L123iRQlzmLZwUqjK4E5qgwcpdKGTlip6CQejT2jykD5e3

_MSC_VER是微软公司推出的C/C++编译器在ANSI/ISO C99标准之外扩展的宏定义,用来定义当前微软公司自己的编译器的主版本。需要注意的是,这并不是Visual Studio 的版本号,也不是Visual C++的版本号。如Visual Studio 2005的Vistual C++版本为8.0,所附带编译器的_MSC_VER定义是1400;目前最新的Visual Studio 2015的Visual C++版本为14.0,相应_MSC_VER为1900。 [1]  
外文名
_MSC_VER
分    类
定义编译器的版本
用    途
编辑器
属    性
软件

编译器

编辑
_MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值(参见扩展阅读中的参考文献2的链接)
MS VC++ 14.0 _MSC_VER = 1900 (Visual Studio 2015)
MS VC++ 12.0 _MSC_VER = 1800 (VisualStudio 2013)
MS VC++ 11.0 _MSC_VER = 1700 (VisualStudio 2012)
MS VC++ 10.0 _MSC_VER = 1600(VisualStudio 2010)
MS VC++ 9.0 _MSC_VER = 1500(VisualStudio 2008)
MS VC++ 8.0 _MSC_VER = 1400(VisualStudio 2005)
MS VC++ 7.1 _MSC_VER = 1310(VisualStudio 2003)
MS VC++ 7.0 _MSC_VER = 1300(VisualStudio .NET)
MS VC++ 6.0 _MSC_VER = 1200(VisualStudio 98)
MS VC++ 5.0 _MSC_VER = 1100(VisualStudio 97)
其中MS VC++ 14.0表示Visual C++的版本为14.0,后面括号中的Visual Studio 2015,表明该VC++包含在微软开发工具Visual Studio 2015中。
另外,可以通过当前使用的MS VC++ 编译器的版本信息来推断当前编译器预定义的 _MSC_VER 值。_MSC_VER 的值是由 MS VC++编译器的主版本号和次版本号构成的,其中主版本号是以“.”分割的版本号信息中的第一部分,而次版本号为其中的第二部分。例如,假设当前那使用的Visual C ++编译器的版本号是15.00.20706.01(MS VC++ 2008),那么其主版本号就是为“15”,而次版本号就是为“00”,因此当前编译器预定义的 _MSC_VER 宏的值就为1500。
关于编译器版本号的查看,需要说名的是:这里的版本号并不是指在“Microsoft Visual Studio——Help——About”里的“Version”的值,这个版本号是指Visual Studio的版本号,而不是VC++编译器的版本号,VC++编译器在Visual Studio里面是指“ cl.exe”程序,该程序才是编译C++代码的真正编译器,如查看“cl.exe”的版本号,以在WIndows 7查看VC 2005的“cl.exe”的版本号为例,“开始——所有程序——Microsoft Visual Studio 2005——Visual Studio Tools——Visual Studio 2005 Command Prompt”进入 VC++ 2005命令行,运行“ cl /?”,将会看到如下的信息:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
vc++ command line vc++ command line
cl.exe version cl.exe version
其中的“14.00.50727.762”就是版本号,对应的的_MSC_VER的值就是1400(14.00.50727.762的四部分依次为:主版本号、次版本号、生成版本号和修订号,其中还有两个相关宏_MSC_FULL_VER:值为140050727,_MSC_BUILD:值为762)。

编译程序

编辑
在程序中加入_MSC_VER宏可以根据 编译器版本让编译器选择性地编译一段程序。例如一个版本编译器产生的 lib文件可能不能被另一个版本的编译器调用,那么在开发应用程序的时候,在该程序的lib调用库中放入多个版本编译器产生的lib文件。在程序中加入_MSC_VER宏,编译器就能够在调用的时根据其版本自动选择可以链接的lib库版本,如下所示。
#if _MSC_VER >= 1400 // for vc8, or vc9
#pragma comment( lib, "SomeLib-vc8-d.lib" )
#elif
#pragma comment( lib, "SomeLib-vc8-r.lib" )
#elif _MSC_VER >= 1310 // for vc71
#pragma comment( lib, "SomeLib-vc71-d.lib" )
#elif
#pragma comment( lib, "SomeLib-vc71-r.lib" )
#elif _MSC_VER >=1200 // for vc6
#ifdef _DEBUG
#pragma comment( lib, "SomeLib-vc6-d.lib" )
#elif
#pragma comment( lib, "SomeLib-vc6-r.lib" )
#endif
#endif
编辑词条参考自 扩展阅读中的链接。关于_MSC_VER更详细的说明请点击阅读扩展阅读中的参考文献3,4的链接。
参考资料
Predefined Macros

https://msdn.microsoft.com/en-us/library/b0084kay.aspx

_MSC_VER Defined as an integer literal that encodes the major and minor number elements of the compiler's version number. The major number is the first element of the period-delimited version number and the minor number is the second element. For example, if the version number of the Visual C++ compiler is 17.00.51106.1, the _MSC_VER macro evaluates to 1700. Enter cl /? at the command line to view the compiler's version number. This macro is always defined.



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值