现在的位置: 首页 > 综合 > 正文

#Pragma once 和_MSC_VER简单应用

2013年09月15日 ⁄ 综合 ⁄ 共 761字 ⁄ 字号 评论关闭
文章目录
 

#pragma once

       只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,这条指令实际上在VC6中就已经有了,但是考虑到兼容性并没有太多的使用它。  #pragma once是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上已经是每个编译器都有这个定义了。 #ifndef,#define,#endif这个是C++语言相关,这是C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式

_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。版本名称上的的对应关系参见扩展阅读中的参考文献1的链接.

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

抱歉!评论已关闭.