注释 C/C++ 代码

17

最近我掌握了微软的标准注释语言(SAL),用于对C/C++源代码进行注释。这个功能可以很好地帮助调试和开发,但不幸的是它不是一个可移植的跨平台库。是否有任何标准或开源工具用于注释C/C++代码?gcc中是否有类似的功能?


是的,Doxygen:http://www.stack.nl/~dimitri/doxygen/ 编辑:刚意识到您在询问GCC,请忽略。 - George
我熟悉doxygen。它是一个非常好的工具,但原则上,它与SAL这样的工具不同。Doxygen主要用于文档化代码,而SAL这样的工具则在开发阶段使用,帮助程序员调试他们的源代码。 - MxNx
1个回答

11
最接近我所知道的是GCC的属性, 但其他编译器不支持这种语法。 GCC属性语法不支持像SAL一样多的注解,但您可能会发现某些注解很有用。
另外,如果您正在使用模板,则可能需要查看Boost Static Assert,大多数编译器都支持它。
还要注意CLANG支持比GCC更多的注释, 使用CLANG的静态分析器可能更接近您想要的结果。

谢谢你的回答。这些工具很好,可以非常有帮助。顺便说一下,这些工具都是特定于编译器的。你知道有没有可以在不同编译器和平台上使用的工具吗? - MxNx
1
很遗憾,我不知道有任何跨编译器的解决方案。过去我使用了C++宏来实现一些注释。类似于这个compiler_specific.h头文件,但需要添加对额外的SAL注释的支持。 - Tony Richards
2
另一个想法 - 可能你只需要在MSVC上使用SAL扩展,在其他编译器上,你基本上只需禁用注释即可。你只能在Windows平台上运行静态分析程序,但至少它仍然可以在其他平台上使用其他编译器编译。我已经出于其他原因这样做了 - gcc比msvc更符合规范,因此我通常使用gcc进行编译,以确保我编写的是标准代码,但msvc有更好的错误消息,尤其是与模板错误相关的消息,所以当我遇到编译器错误时,我会使用msvc。 - Tony Richards
这是一种好的技巧。谢谢。 - MxNx
我之前发布了一个头文件,用于这个目的...不幸的是,看起来其他编译器短时间内不会支持SAL。 - nemequ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接