在一些 doxygen 文档中,我想显示#define
,而不是标签本身。例如,在一个 C 文件中我有
#define REPEAT_N_TIMES 10
现在我想在我的文档中显示:
该动作进行10次。
如果我使用\ref REPEAT_N_TIMES
,它显示:
该操作已执行 REPEAT_N_TIMES 次
有没有办法显示content链接的,而不是链接本身,例如\ValueOf(\ref REPEAT_N_TIMES)
or \contentOf(\ref REPEAT_N_TIMES)
?
Update:我的 Doxygen 的配置是:
// Configuration options related to the preprocessor
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = WXUNUSED()=
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
The MACRO_EXPANSION
设置似乎改变了宏的“细节”。但我没有找到选择宏名称或其内容的方法。使用命令\ref
似乎不是正确的方式:它指的是“某物”而不是“某物”的内容
是否有我可以使用的运算符或函数,可能类似于C,我可以使用类似的东西\ref *something
代替\ref something
?
doxygen 手册页位于预处理 http://www.doxygen.nl/manual/preprocessing.html似乎有您需要的所有信息。第一步尝试设置MACRO_EXPANSION
doxygen 配置文件中的标志为YES
,然后在您的文档中包括
The action is done REPEAT_N_TIMES times.
正如 doxygen 手册中所述,这将扩展所有宏定义(如果需要,则递归),这通常太多了。因此,您可以使用以下命令准确指定要扩展的宏EXPAND_ONLY_PREDEF
and EXPAND_AS_DEFINED
配置文件中的设置。例如,尝试设置
EXPAND_ONLY_PREDEF = 是
EXPAND_AS_DEFINED = REPEAT_N_TIMES
在配置文件中。
UPDATE:根据 @spamy 的评论,我对此进行了更多研究,似乎我上面提到的方法不适用于宏within注释块,即仅扩展源代码中的宏。例如,参见这个帖子 http://sourceforge.net/mailarchive/message.php?msg_id=11649789在 doxygen Sourceforge 页面上。根据这篇文章,在注释块中实现宏扩展的唯一方法是使用INPUT_FILTER
配置文件设置。使用类似的东西
INPUT_FILTER = sed /REPEAT_N_TIMES/10
Warning:以上INPUT_FILTER
尚未经过测试。
如果您不想使用INPUT_FILTER
then this https://stackoverflow.com/a/9299914/623518另一个线程的答案可能是你最好的选择。本质上它说您可以记录宏,以便文档的读者能够轻松找到真正的价值。因此,将文档添加到您的#define
并且只是\ref
它在文档的其他地方。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)