#pragma once 的便携式替代品

新手上路,请多包涵

有人可以告诉我 #pragma once 对各种编译器的指令支持的解决方法吗?

我想在我的标题中使用如下内容:

 #if _MSC_VER > ... || __GNUC__ > ... || ...

#pragma once

#endif

也许它已经存在于提升源或您的代码中?

原文由 FrozenHeart 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 818
2 个回答

使用 包括警卫

 #ifndef MY_HEADER_H
#define MY_HEADER_H

// ...

#endif    // MY_HEADER_H

有时你会看到这些结合使用 #pragma once

 #pragma once

#ifndef MY_HEADER_H
#define MY_HEADER_H

// ...

#endif    // MY_HEADER_H

#pragma once 得到了相当 广泛的支持

原文由 pb2q 发布,翻译遵循 CC BY-SA 3.0 许可协议

#pragma once 是包含警卫的非标准替代方案:

 #ifndef HEADER_H
#define HEADER_H

//contents of header

#endif

两者都确保标题内容不会在同一个翻译单元中多次粘贴。

原文由 Luchian Grigore 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题