doxygen - 如何显示定义的值

标签 doxygen c-preprocessor

在一些 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/

相关文章:

c - 保护 scanf 不使用定义读取太多字符?

c++ - 通过 Doxygen 中的宏定义的文档函数

C++ 预处理器确保全局唯一字符串

c++ - Doxygen 重复带有默认参数的 C++ 函数

cocoa - 使用 Doxygen 记录自动生成的代码 (NSManageObjects)

c++ - 宏未在此范围内声明

C宏定义可以引用其他宏吗?

C 预处理器 - 在编译时向结构体添加元素

c++ - 通过\see 命令引用转换运算符

c++ - 有没有一种简单的方法来计算库中记录的函数?