【问题标题】:Override #pragma once with standard #ifndef MS-VC++使用标准 #ifndef MS-VC++ 覆盖 #pragma 一次
【发布时间】:2011-07-04 01:31:38
【问题描述】:

我还没有看到这个问题的任何答案(这可能意味着它是不允许的)但我想我还是会问。

有没有什么方法可以覆盖使用 MS Visual-C++ 创建的 .h.hpp 文件中 #pragma once 的自动生成,以使用使用便携式友好预处理器指令的标准标头保护?

#ifndef _V_DESCRIPTOR_ 
#define _V_DESCRIPTOR_
 // some code here
#endif

【问题讨论】:

  • 根据我的经验,.cpp 文件没有包含任何类型的保护... 另请注意,#define __XYZ__ 不可移植,该宏名称是保留的!
  • 我的错误,我的意思是 .h 文件。我会编辑。
  • 您的新示例仍然是保留名称。任何以双下划线或下划线 + 大写字母开头的内容都是保留的,不应在您的代码中使用。
  • 好的。谢谢。我有一个使用该确切约定的头文件(请参阅 Ogre3d 框架教程)所以......很高兴知道我不应该这样做。我会在编辑中更正。
  • 我知道,有很多教程都建议使用这种模式。我花了一段时间才改掉这个坏习惯。

标签: visual-studio visual-c++ visual-c++-2010


【解决方案1】:

要回答您的真正问题,我认为 Visual Studio 没有任何选择,但使用 Visual Studio 可扩展性工具包会非常简单,所以我确信有人编写了一个可以下载的宏.环顾工具 -> 扩展管理器 -> 在线图库,您可以安装大量免费插件。

例如,Zoom C++ Class Wizard 似乎会生成两种样式的包含保护。但我从未使用过它,所以我无法以一种或另一种方式提出建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 2012-03-21
    相关资源
    最近更新 更多