_MSC_VER

来源:互联网 发布:oa办公软件是什么 编辑:程序博客网 时间:2024/04/30 11:16

今天读一个程序,遇到了不懂的几个部分,做下笔记以便以后查找。

遇到的第一个不懂的就是 _MSC_VER,上网查了一些资料,以及自己敲了一些代码来运行。


_MSC_VER 定义编译器的版本。_MSC_VER分解如下:

MS:Microsoft(微软)的简写

C:MSC就是Microsoft出的C编译器。
VER:Version(版本)的简写。
全部加在一起就是:Microsoft的C编译器的版本。
_MSC_VER是微软C/C++编译器——cl.exe编译代码时预定义的一个宏。需要针对cl编写代码时, 可以使用该宏进行条件编译。
_MSC_VER的值表示cl的版本。需要针对cl特定版本编写代码时, 也可以使用该宏进行条件编译。
_MSC_VER的类型是"int"。
下面是一些编译器版本的_MSC_VER值
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。

在MSDN中有这样一段话:
Defines the compiler version. Defined as 1200 for Microsoft Visual C++ 6.0. Always defined.
The _MSC_VER macro will have one of the following values depending upon the particular Microsoft compiler:

Compiler                         _MSC_VER value

--------                                  --------------

C Compiler version 6.0                   600

C/C++ compiler version 7.0            700

Visual C++, Windows, version 1.0 800
Visual C++, 32-bit, version 1.0       800
Visual C++, Windows, version 2.0 900
Visual C++, 32-bit, version 2.x       900
C++, 32-bit, version 4.0                 1000
Visual C++, 32-bit, version 5.0       1100

Visual C++, 32-bit, version 6.0       1200

在程序中加入_MSC_VER宏可以根据编译器版本让编译器选择性地编译一段程序。例如一个版本编译器产生的lib文件可能不能被另一个版本的编译器调 用,那么在开发应用程序的时候,在该程序的lib调用库中放入多个版本编译器产生的lib文件。在程序中加入_MSC_VER宏,编译器就能够在调用的时 根据其版本自动选择可以链接的lib库版本.


程序示例:

编译显示:


运行:


最后,算是对_MSC_VER有了了解了。






原创粉丝点击