我已经定义了以下宏,并尝试在生成文档时对其进行扩展。
#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 :(得分:0)
我认为就像名称所说的那样,只有这样才能扩展预定义的宏。你应该加上像
这样的东西PREDEFINED += GETSET(param)="..."
在你的Doxygen文件中。
BTW,因为您使用的是bool
:
enable?1:0
应该只是enable
,bool
只是C中的0
和1
。TRUE
应为true