2011-04-21 27 views
3

我已经定义了以下宏,并尝试在生成文档时将其展开。Doxygen:如何使用EXPAND_AS_DEFINED

#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宏的意义。

回答

0

我认为这是正如名称所述,它只会扩展预定义的宏,如果这样做。你应该在你的Doxygen文件中加入类似

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

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

  • enable?1:0应该只是enablebool是C.
  • 0闲来无事和 1
  • TRUE应该true