打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
#pragma once 和 #ifndef #define …#endif 有什么不同?
userphoto

2010.07.27

关注

#pragma once 和 #ifndef #define …#endif 有什么不同?

#infndef XX
#define XX
     #if _MSC_VER > 1000 
       #pragma once
    #endif
     .
     .
#endif

 

从只让头文件只编译一次的角度去看,似乎两种方法是一样的。但查看MSND后发现应该是不一样的。看MSDN对#pragma once 的定义:

#pragma once

Specifies that the file, in which the pragma resides, will be included (opened) only once by the compiler in a build. A common use for this pragma is the following:一个是让编译器只打开一次文件,而如果只有#ifndef #define …#endif 的话,虽然编译器只编译一次头文件,但是他还是会打开这个文件N多次。

 

注意:   _MSC_VER 是出于版本兼容性考虑,定义
                Defines the compiler version. Defined as 1200 for Microsoft Visual C++ 6.0. Always defined.

———————-

#pragma是一种编译指令,使用格式为#pragma   token-string,象  
  #pragma   data_seg(".mdata")…..#pragma   data_seg()可以让编译器把两者之间的所有已初始化变量放入一个新的.mdata段中。  
  而#pragma   once的意思是要求编译器在编译过程中只将包含此命令文件编译(打开)一次,从而避免重复包含此文件。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【C++进阶之路】C++防止头文件被重复引入的3种方法!
#pragma once与#ifndef两种防止头文件二次编译的区别
避免头文件被多次include
C语言 #pragma once - C语言零基础入门教程
c++中的预处理
include <>与""的区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服