我正在 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
流程?
答案 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