c - 文档互斥定义

标签 c comments doxygen cperl-mode

我正在用 C 编写一个小程序,我想记录它以便其他人可以更改一些细节。我用 #define 写了一个 config.h 文件来启用或不启用某些操作,其中一些是互斥的,另一些则不是。

不互斥的例子:

#define USE_A
#define USE_B
#define USE_C

互斥的例子:

#define BUILD_FULL
#define BUILD_COMPACT

到目前为止,我通过记录我不想使用的功能来选择要编译的程序的配置,例如:

//#define BUILD_FULL
#define BUILD_COMPACT

构建 COMPACT 可执行文件。

如何为注释掉的功能编写文档?

我试过:

#define USE_A //!< Special Feature
#define USE_B //!< Special Feature
//#define USE_C //!< Special Feature

我没有使用 USE_C 编译它,但显然我丢失了文档,因为 doxygen 没有解析它。如果我误解了定义的正确使用方式,您将如何重写 #define 流程?

最佳答案

您可以测试宏的,而不仅仅是它的存在。例如,使用 0 禁用一个选项,或使用 1 启用它。然后,使用 #if 而不是 #ifdef 来测试条件。

#define USE_A 1    //!< Special Feature
#define USE_B 1    //!< Special Feature
#define USE_C 0    //!< Special Feature

#if USE_A
...
#elif USE_C
...
#endif  

关于c - 文档互斥定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10278211/

相关文章:

php - 评论区不发表评论

python - ## 在 python 中使用 notepad++ 语法着色

c++ - Doxygen 私有(private)函数

c++ - 用于 Web 服务的 Doxygen?

对 C 中的 "pass by reference"以及何时使用 & 或 * 感到困惑

c - 两个数相加

performance - 空白何时会影响性能?

c++ - 如何让 DOxygen 使用和识别注释掉的参数名称?

c++ - 你如何制作linux GUI?

c - 无限循环后我需要返回语句吗?