【发布时间】: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 的行为是否会有所不同?