【问题标题】:C/C++: What does the comment "/*< */" stand for?C/C++:注释“/*< */”代表什么?
【发布时间】:2020-12-29 15:19:20
【问题描述】:

我有一个相当笼统的问题:我最近在 C/C++ 代码中看到了许多 #defines,它们被注释为“/*

#define ARRSIZE(x)          (sizeof(x)/sizeof(x[0]))        /*< macro to determine the size of an array */

我个人只在 cmets 中看到了定义,而在 Google 中的搜索也没有回答我的问题。这有什么意义吗?这只是常见的做法还是来自 Doxygen?还是有其他原因?

【问题讨论】:

  • 无关:被诅咒的宏的Use std::size instead。如果您没有可用的 c++17,请查看第三种可能的实现。你可以很容易地自己解决这个问题。
  • 抱歉,我忽略了doxygen 标签。这也应该在问题文本本身中明确说明这是上下文。
  • 两件事:1. 是的,std::size 是此代码 sn-p 的一个选项(但无论如何它是一个示例)。我仍然习惯于纯 C 代码:) 2. 我添加了 doxygen 标签,因为我怀疑它可能来自 doxygen 标准。从我的问题文本中可以清楚地看出。

标签: c++ c comments doxygen


【解决方案1】:

通常,&lt; 是 Doxygen 的语法,用于在他们记录的项目之后出现的文档。

来自 Doxygen 文档的 "Putting documentation after members" 部分的示例:

int var; /**< Detailed description after the member */

不过,对您给出的示例感到好奇的是,它使用了普通的注释块 (/*),而不是文档块(例如,/**)。我怀疑这是对这个具体例子的作者的疏忽。或者,作者可能将此约定从文档块扩展到所有性质相似的 cmets。

【讨论】:

  • 这也解释了为什么我在 Google 中找不到任何相关内容,因为我从上面的代码示例中搜索了粗略的版本。所以谢谢你的回答,我以后会根据doxygen文档记录下来。
  • @drdolphin 是的。或者一些有创意的代码编写者喜欢用 ASCII 艺术装饰评论(忽略 Doxygen 用户可能会绊倒这个,甚至不知道文档生成器)。我承认我有时会在我的代码中写入像 // &lt;-- Here the remarkable thing happened. 这样的 cmets。 ;-)
猜你喜欢
  • 2017-12-28
  • 1970-01-01
  • 2015-12-16
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 2012-02-05
  • 1970-01-01
  • 2011-03-09
相关资源
最近更新 更多