【问题标题】:The significance of @ in comments评论中@的意义
【发布时间】:2019-04-10 15:33:57
【问题描述】:

我有一个头文件。该文件充满了多行 cmets。在 cmets 中,很多时候一些单词会出现@,例如

/** @that


*/

现在这个“那个”将颜色从绿色变为橙色(在 Keil IDE 中)。这些 cmets 似乎没有任何影响。更改此文本的颜色背后有什么重要的事情吗?或者这只是我不知道的关于cmets的另一件事,它是无害的?请注意,当我删除“那个”后面的一颗星时,它的颜色也会变为绿色。

【问题讨论】:

  • 它(很可能)是代码文档生成器的一部分(看起来像 Doxygen)。这不是 C 语言的一部分,它是一个外部工具
  • 有一些工具可以检查您的源代码并从中提取文档,包括 cmets 中的特殊“标签”。很有可能你看到的就是这样一个特殊的标签,会被这样一个工具处理。
  • 看起来像这个问题(虽然不是说它是重复的)stackoverflow.com/questions/36192264
  • 有多种注释方案,在 cmets 中使用不同的标记来提供有关代码的额外结构化信息。 @ 将是另一个。 AFAICR,它适用于Doxygen — 尽管手册显示@ 使用 Python,但据我所知,它不适用于 C。 (更准确地说,/** 标志着 Doxygen 注释块的开始。@ 符号需要更多研究。)
  • 请复制一个完整的例子,而不仅仅是“@that”

标签: c


【解决方案1】:

您在头文件中看到它并非偶然,因为它与文档有关。

它不是 C 语言本身的一部分,例如将 /* 用于 cmets,但大多数情况下,它用于注释函数或/和(如您的情况)参数。

例子:

/**
 * @annotateThatFunctionAsInvokable
 * Add two integers
 *
 * @param   [in]    a    first addend
 * @param   [in]    b    second addend
 * @param   [out]   sum of 'a' and 'b'
*/
void add(int a, int b);

注意:C 预处理器几乎是 ignores 注释的内容,因此任何注释都只会被文档工具考虑在内。

PS:一个真正广泛使用的文档工具是Doxygen,为了理解您的文档并正确解析它,使用这些@

【讨论】:

  • 需要注意的重要一点是,C 预处理器不太关心注释块中的内容。额外的注释仅对文档工具有说明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 2011-04-15
  • 1970-01-01
  • 2021-09-09
  • 1970-01-01
  • 2016-12-18
  • 2015-02-09
相关资源
最近更新 更多