Doxygen:如何使用 EXPAND_AS_DEFINED

sho*_*nex 5 c doxygen

我定义了以下宏,并尝试在生成文档时扩展它。

#define GETSET(param) \
bool CYNOVE_Enable##param(postproc_ctx_t ctx, bool enable)  \
{                                                           \
 struct postproc_ctx * c;                                   \
 c = (struct postproc_ctx *)ctx;                            \
 c->do_##param = enable?1:0;                                \
 return TRUE;                                               \
}                                                           \
Run Code Online (Sandbox Code Playgroud)

在 doxygen 中,如果我使用:

MACRO_EXPANSION = YES
Run Code Online (Sandbox Code Playgroud)

然后当我使用宏时它会被扩展。但是如果设置:

MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
EXPAND_AS_DEFINED = GETSET
Run Code Online (Sandbox Code Playgroud)

宏未展开

因为我认为,其中一个答案是错误的,但评论对于任何冗长的解释来说都很糟糕,让我补充一下我认为这应该如何工作。

根据 doxygen 文档和此链接,PREDEFINED 和 EXPAND_AS_DEFINED 有不同的用途。我理解 EXPAND_AS_DEFINED 用于选择性地扩展给定的宏“因为它是在源代码中定义的”,因此得名,而 PREDEFINED 在这里赋予 Doxygen 宏的含义。

Jen*_*edt 0

我认为正如其名称所示,如果这样放置,它只会扩展预定义的宏。你应该把类似的东西

PREDEFINED += GETSET(param)="..."
Run Code Online (Sandbox Code Playgroud)

在您的 Doxygen 文件中。

顺便说一句,因为您正在使用bool

  • enable?1:0应该只是C中的enable,​​ 和 。bool01
  • TRUE应该true