文档互斥定义

时间:2012-04-23 09:48:10

标签: c comments doxygen cperl-mode

我正在 C 中编写一个小程序,我想记录下来,以便其他人可以更改一些细节。我写了一个带有#define s的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流程?

1 个答案:

答案 0 :(得分:2)

您可以测试宏的,而不仅仅是它的存在。例如,使用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