c - Doxygen : how to use EXPAND_AS_DEFINED

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

最佳答案

我认为正如名字所说的那样,如果这样说,它只会扩展预定义的宏。你应该把类似的东西

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

在你的 Doxygen 文件中。

顺便说一句,因为您使用的是 bool :
  • enable?1:0应该只是 enable , bool无非就是01在 C.
  • TRUE应该是 true
  • 关于c - Doxygen : how to use EXPAND_AS_DEFINED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741858/

    相关文章:

    c++ - 如何摆脱 "The documentation for this class was generated from the following files"段?

    c++ - 多氧 C++ : document privately inherited members exposed by the "using" declaration

    html - 在生成的 HTML 中更改函数签名的 doxygen 格式

    c - 应用程序崩溃(两个链表的交集)

    c - 如何增加C中数组的限制?

    c - 我如何使用 vfork 在 uClinux 中生成守护进程?

    python - 如何在 Python 中记录和使用类似枚举的数据类型?

    c - 欧拉 8- 相邻数字

    c - 如何在不使用 fseek 或 stat 的情况下在 C 中获取文件的大小?

    doxygen - 是否可以防止 Doxygen 输出 protected 成员?