【发布时间】: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 一个宏的含义。
【问题讨论】: