Doxygen:如何使用EXPAND_AS_DEFINED

时间:2011-04-21 09:02:47

标签: 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;                                               \
}                                                           \

在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一个宏的含义。

1 个答案:

答案 0 :(得分:0)

我认为就像名称所说的那样,只有这样才能扩展预定义的宏。你应该加上像

这样的东西
PREDEFINED += GETSET(param)="..."
在你的Doxygen文件中

BTW,因为您使用的是bool

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