我定义了以下宏,并尝试在生成文档时将其扩展。
#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 一个宏的含义。
最佳答案
我认为正如名字所说的那样,如果这样说,它只会扩展预定义的宏。你应该把类似的东西
PREDEFINED += GETSET(param)="..."
在你的 Doxygen 文件中。
顺便说一句,因为您使用的是
bool
:enable?1:0
应该只是 enable
, bool
无非就是0
和 1
在 C. TRUE
应该是 true
关于c - Doxygen : how to use EXPAND_AS_DEFINED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741858/