【问题标题】:Doxygen : how to use EXPAND_AS_DEFINEDDoxygen:如何使用 EXPAND_AS_DEFINED
【发布时间】:2011-04-21 09:02:46
【问题描述】:

我已经定义了以下宏,并尝试在生成文档时对其进行扩展。

#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;                                               \
}                                                           \

在 doxygen 中,如果我使用:

MACRO_EXPANSION = YES

然后宏在我使用时被展开。 但是,如果设置:

MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
EXPAND_AS_DEFINED = GETSET

宏未展开

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

根据 doxygen 文档和 link,PREDEFINED 和 EXPAND_AS_DEFINED 有不同的用途。我知道 EXPAND_AS_DEFINED 用于选择性地扩展给定的宏,“正如它在源代码中定义的那样”,因此得名,而 PREDEFINED 是为了给 Doxygen 一个宏的含义。

【问题讨论】:

    标签: c doxygen


    【解决方案1】:

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

    PREDEFINED += GETSET(param)="..."
    

    在你的 Doxygen 文件中。

    顺便说一句,因为您使用的是bool

    • enable?1:0 应该只是 enablebool 只不过是 C 中的 01
    • TRUE 应该是 true

    【讨论】:

      猜你喜欢
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      • 2014-02-15
      相关资源
      最近更新 更多