【问题标题】:Annotating C/C++ code [closed]注释 C/C++ 代码 [关闭]
【发布时间】:2014-01-28 06:52:29
【问题描述】:

最近我掌握了 Microsoft 的 Standard Annotation Language (SAL) 用于注释 C/C++ 源代码。此功能对于调试和开发过程非常有帮助,但不幸的是它不是一个可移植的跨平台库。是否有任何用于注释 C/C++ 代码的标准或开源工具? gcc 中是否有类似的功能可用?

【问题讨论】:

  • 是的,doxygen:stack.nl/~dimitri/doxygen 编辑:刚刚意识到你在问 GCC,忽略。
  • 我对 doxygen 很熟悉。这是一个非常好的工具,但原则上它与 SAL 之类的工具不同。 Doxygen 主要用于记录代码,但在开发阶段使用了像 SAL 这样的工具,帮助程序员调试他们的源代码。

标签: c++ c annotations


【解决方案1】:

我知道最接近的是GCC's attributes,但其他编译器不支持该语法。 GCC 属性语法不支持像 SAL 那么多的注解,但您可能会发现其中一些注解很有用。

或者,如果您使用模板,您可能需要查看大多数编译器支持的Boost Static Assert

还要注意CLANG supports more annotations than GCC,使用 CLANG 的静态分析器可能更接近您想要的。

【讨论】:

  • 感谢您的回答。这些工具很好,而且很有帮助。顺便说一下,这些工具都是特定于编译器的。你知道有什么工具可以在不同的编译器和不同的平台上使用吗?
  • 不,遗憾的是我不知道有什么可以跨编译器工作的。我在过去需要的一些注释中使用了 C++ 宏。类似于 compiler_specific.h 标头的东西,除了添加对附加 SAL (如注释)的支持。
  • 另一个想法 - 可能您只需要 SAL 扩展即可在 MSVC 上工作,而在其他编译器下,您基本上不需要注释。你只能在 Windows 平台上运行你的静态分析器,但至少它仍然可以在其他平台上使用其他编译器进行编译。由于其他原因,我已经这样做了 - gcc 比 msvc 更合规,所以我通常在 gcc 上编译以确保我正在编写标准代码,但是 msvc 有更好的错误消息,特别是关于模板错误,所以我使用 msvc当我遇到编译器错误时,我无法破解。
  • 这是一个很好的技术。谢谢。
  • 我不久前发布了 a header 来做这件事……不幸的是 it doesn't look like 其他编译器很快就会支持 SAL。
猜你喜欢
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-24
  • 1970-01-01
  • 2021-07-05
  • 2012-02-05
  • 2016-10-05
相关资源
最近更新 更多