3

私は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 が解析しなかったため、明らかにドキュメントを失いました。#definedefineの正しい使用方法を誤解した場合、どのようにフローを書き直しますか?

4

1 に答える 1

3

マクロの存在だけでなく、マクロのをテストできます。たとえば、オプションを無効にするには 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  
于 2012-04-23T12:50:15.470 に答える