2012-04-23 36 views
2

我正在寫一個小程序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流?

回答

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 
+0

是的我已經認識到,這樣我就可以將定義保留在適當的位置,所以代碼在任何地方都是可見的。唯一的問題是,我需要編輯我所有的代碼:(時間猴子補丁:) – andyinno 2012-04-24 08:16:30