【问题标题】:Doxygen: auto-reference of macros and enum elementsDoxygen:宏和枚举元素的自动引用
【发布时间】:2014-09-27 20:29:26
【问题描述】:

我使用 doxygen 1.8.8 来记录 C 项目,我将 AUTOLINK_SUPPORT 设置为 YES

说,我有一个这样的宏记录:

/**
 * My macro
 */
#define MY_MACRO

然后,我在 cmets 中为某些功能提到了这个宏,如下所示:

/**
 * My function uses `MY_MACRO` heavily
 */
void my_func(void) { ... }

在这种情况下,MY_MACRO 不是参考。经过大量的实验,我找到了一些制作doxygen的方法以供参考:

  • 像这样指定它:\ref MY_MACRO。我不喜欢它,因为 (a) 在 cmets 中写和读不太方便; (b) 字体不是等宽的。我试图将它与反引号结合起来,它不起作用;
  • 像这样指定它:MY_MACRO()。我不喜欢它,因为很明显,这些括号表明宏是参数化的,但事实并非如此;
  • 在评论底部指定它,如下所示:@see MY_MACRO。我不喜欢它,因为它不方便阅读,如果内联引用宏会更好。

那么,如何让它只在函数的注释中引用呢?

UPD:我的 doxyfile:http://vpaste.net/FuIk4

【问题讨论】:

  • ENABLE_PREPROCESSING、MACRO_EXPANSION、PREDEFINED、EXPAND_ONLY_PREDEF、EXPAND_AS_DEFINED的设置是什么。
  • @Rich ENABLE_PREPROCESSING=YES,MACRO_EXPANSION=NO,PREDEFINED=DOXYGEN_SHOULD_SKIP_THIS,EXPAND_ONLY_PREDEF=NO,EXPAND_AS_DEFINED 为空。我更新了我的问题:添加了完成 doxyfile 的链接
  • 奇怪,我以前从未见过这种行为。也许禁用 SKIP_FUNCTION_MACROS 会解决它?
  • @Rich 不,没有任何改变。您的意思是对于您的项目,枚举元素和非参数化宏是自动链接的?如果是的话,如果你有开源的东西,你能分享你的 doxyfile 和可能的项目吗?
  • 我得挖掘一下——我的记忆力有点弱。如果 MY_MACRO 具有显式值,Doxygen 的行为是否会有所不同?

标签: c doxygen


【解决方案1】:

autolink docs 中所述,我们应该在宏名称、枚举项或枚举名称前加上#

/**
 * My function uses `#MY_MACRO` heavily
 */
void my_func(void) { ... }

然后,MY_MACRO 成为一个链接。

【讨论】:

  • 我错过了关于我的常量的 doxygen 评论。这很棘手! (另外,为了让 C 文件中的函数引用正常工作,我需要在顶部添加 @file 注释)
猜你喜欢
  • 2021-07-11
  • 1970-01-01
  • 2020-01-24
  • 2010-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-24
  • 1970-01-01
相关资源
最近更新 更多