2012-02-15 31 views
1

doxygenを使用してCコードを文書化しようとしています。 #defineでマクロとして設定されたいくつかのデフォルト値があります。Cのdoxygenドキュメント内で非関数マクロを展開する

例えば:私は私が望むようにデフォルト値を扱うエイリアスを追加していました。doxygen内部

#define DEFAULT_WIDTH 100 
#define DEFAULT_HEIGHT 200 

(私はCにデフォルト値を持っていない知っているが、これは単なる一例です)。以下の関数例を考えてみましょう

//! Initializes something 
//! @param width The width @default DEFAULT_WIDTH 
//! @param height The height @default DEFAULT_HEIGHT 
//! @return Result of initialization 
char initSomething(int width,int height); 

これは、私が1つの重要な事実を除いて望むようにドキュメントを生成します。 DEFAULT_WIDTHとDEFAULT_HEIGHTは展開されません。マクロ名は取得できますが、それぞれ100と200ではありません。私はMACRO_EXPANSIONとENABLE_PREPROCESSINGをチェックしています。

私には何が欠けていますか?実際にdoxygenを使ってこれを達成する方法はありますか?

doxywizardでdoxygenを設定していますが、現在Windowsでテスト中です。

編集:ugorenが指摘しているように、マクロをドキュメント化するだけでドキュメントをリンクすることができます。これは私の現在の実装が私のプロジェクトに実際にどのようにあるかです。しかし、もしあれば、私は追加オプションを検討しようとしています。

答えて

2

私は、MACRO_EXPANSIONとENABLE_PREPROCESSINGより強力なものはないと思います。
問題はおそらく、コメントのマクロが通常は展開されていないことが原因です。それには正当な理由があります。maxというマクロがドキュメント内に展開されているとします。

マクロを文書化することができますので、マニュアルの読者は実際の値を簡単に見つけることができます。

+0

はいだけでマクロを記録することは可能な解決策であり、これは私が現在やっているものですが、私はそうでなければそれを行うことができる方法があれば疑問に思います。入力していただきありがとうございます – Lefteris

+0

doxygenのドキュメント内でマクロを展開することができます –

2

あなたのdoxygenの設定ファイルに

EXPAND_AS_DEFINED += DEFAULT_WIDTH 

のようなものを追加します。

(P99のマニュアルは、このようなマクロ展開でいっぱいです。そのdoxygenの設定ファイルは、配布が付属していなければならない。)

+0

こんにちはジェンス、入力いただきありがとうございます。私は質問をする前にEXPAND_AS_DEFINEDを試みたが、うまくいかなかった。あなたがそれがP99のためにうまくいったとは言えば、私は間違っていなければならない、またはdoxywizardの何らかの特質かもしれない。私は過去にP99をチェックしました。あなたのブログにコメントしていて、doxywizardによって生成された設定ファイルとあなたの設定ファイルを比較します。 – Lefteris

+0

それはまだ動作しません私は恐れています。しかし私はあなたの設定ファイルで、私とは異なる1つのことに気付きました。メインのconfファイルにEXPAND_AS_DEFINED + = FOOTNOTEが1つしかなく、他のすべてがメインのdoxygen confファイルに含まれる別のファイルにあるように見えるのはなぜですか?私は単にconfandファイルにEXPAND_AS_DEFINED + MACROの束を追加していますが、何も起こりません。それに違いはありますか?プリプロセッサに関するその他のフラグはすべてP99 – Lefteris

+0

と同じに設定されています。いいえ、インクルードファイルに含めるかどうかで違いはありません。 P99では、これは単なるモジュール化です。インクルードされたファイルは基本的に、このファイルを他のプロジェクトにも含めることができるように、 'EXPAND_AS_DEFINED'という大きなリストを持っています。後で設定ファイルでdoxygen変数を上書きする何か怪しげなことがなければなりません。doxygenはどこかのコードで救済されます... –

関連する問題