gpt4 book ai didi

doxygen - 如何显示定义的值

转载 作者:行者123 更新时间:2023-12-01 06:41:17 29 4
gpt4 key购买 nike

在一些 doxygen 文档中,我想显示 #define 的内容,而不是标签本身。例如,在一个 C 文件中,我有

#define REPEAT_N_TIMES 10

现在在我的文档中我想显示:

The action is done 10 times.



如果我使用 \ref REPEAT_N_TIMES ,它会显示:

The action is done REPEAT_N_TIMES times



有没有办法显示链接的内容,而不是链接本身,例如 \ValueOf(\ref REPEAT_N_TIMES)\contentOf(\ref REPEAT_N_TIMES)

更新: 我的 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
MACRO_EXPANSION 设置似乎改变了宏的“细节”。但是我没有看到选择宏名称或其内容的方法。使用命令 \ref 似乎不是正确的方法:它指的是“某物”而不是“某物”的内容

是否有我可以使用的运算符或函数,可能类似于 C ,在那里我可以使用类似 \ref *something 而不是 \ref something 的东西?

最佳答案

preprocessing 上的 doxygen 手册页似乎包含您需要的所有信息。作为第一步,尝试将 doxygen 配置文件中的 MACRO_EXPANSION 标志设置为 YES ,然后在您的文档中包括

The action is done REPEAT_N_TIMES times.

如 doxygen 手册所述,这将扩展所有宏定义(如果需要,递归),这通常太多了。因此,您可以使用配置文件中的 EXPAND_ONLY_PREDEFEXPAND_AS_DEFINED 设置准确指定要扩展的宏。例如,尝试设置

EXPAND_ONLY_PREDEF = YES
EXPAND_AS_DEFINED = REPEAT_N_TIMES



在配置文件中。

更新: 根据@spamy 的评论,我对此进行了更多研究,似乎我上面提到的方法不适用于评论块中的宏,即仅扩展了源代码中的宏。例如,参见 doxygen sourceforge 页面上的 this post。根据这篇文章,在注释块中实现宏扩展的唯一方法是使用 INPUT_FILTER 配置文件设置。使用类似的东西
INPUT_FILTER = sed /REPEAT_N_TIMES/10

警告: 上述 INPUT_FILTER 尚未经过测试。

如果您不想使用 INPUT_FILTER,那么 this 对另一个线程的回答可能是您最好的选择。从本质上讲,它表示您可以记录宏,因此文档的读者将能够轻松找到真正的值(value)。因此,将文档添加到您的 #define 中,并在文档中的其他地方对其进行 \ref

关于doxygen - 如何显示定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10137566/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com