# Doxygenについて http://www.doxygen.jp/ https://qiita.com/yuta-yoshinaga/items/84887a89f6a21a7dcfd5 ## コメントの書き方 ### ファイルに記載する情報 ```c /** * @file ファイル名.h * @brief ファイルの概要をここに記述します。 * @details 詳細な説明をここに記述します。 */ ``` ```c //////////////////////////////////////////////////////////////////////////////// /// @file ファイル名 /// @brief ファイルの説明 /// @author 作成者 /// @date ファイル作成年月日 /// $Version: ファイルバージョン$ /// $Revision: ファイルリビジョン$ /// @note ファイルに備考などを明記する場合はここへ書き込む /// @attention ファイルに注意書きなどを明記する場合はここへ書き込む /// @par History /// ファイルに履歴などを明記する場合はここへ書き込む /// /// Copyright (c) YYYY Sample Inc. All Rights reserved. /// /// - 本ソフトウェアの一部又は全てを無断で複写複製(コピー)することは、 /// 著作権侵害にあたりますので、これを禁止します。 /// - 本製品の使用に起因する侵害または特許権その他権利の侵害に関しては /// 当社は一切その責任を負いません。 /// //////////////////////////////////////////////////////////////////////////////// ``` ### クラスに記載する情報 ```c /** * @class クラス名 * @brief クラスの概要をここに記述します。 * @details 詳細な説明をここに記述します。 */ class クラス名 { // クラスのメンバ関数や変数の定義 }; ``` ### 関数・メソッドを記載する ```c /** * @brief 関数の概要をここに記述します。 * @fn 関数名 * @param[in] param1 パラメータ1の説明。 * @param[out] param2 パラメータ2の説明。引数(ポインタ引数等) * @return 関数が返す値の説明。 * @details 詳細な説明をここに記述します。 * @author 関数作成者名 * @date 関数作成年月日 * @version 関数やソースにバージョンを明記する場合はここへ書き込む * @note 関数に備考などを明記する場合はここへ書き込む * @attention 関数に注意書きなどを明記する場合はここへ書き込む * @par History */ int 関数名(int param1, int ¶m2); ``` ### メンバ変数 ```c class クラス名 { public: /** * @var 変数名 * @brief メンバ変数の概要をここに記述します。 */ int メンバ変数名; }; ``` ###  列挙型の説明 ```c /** * @enum Enum名 * @brief 列挙型の概要をここに記述します。 * @details 詳細な説明をここに記述します。 */ enum Enum名 { ENUM_VALUE1, ///< 値1の説明 ENUM_VALUE2, ///< 値2の説明 ENUM_VALUE3 ///< 値3の説明 }; ``` ## Doxygenのタグをまとめた表 | タグ | 説明 | 使用対象 | | --------------------- | ---------------------------------------- | ---------------------------------------- | | `@file` | ファイルの説明を記述します。 | ファイル | | `@class` | クラスの説明を記述します。 | クラス | | `@struct` | 構造体の説明を記述します。 | 構造体 | | `@enum` | 列挙型の説明を記述します。 | 列挙型 | | `@brief` | 簡単な概要を記述します。 | クラス、関数、メンバ変数、構造体、列挙型 | | `@details` | 詳細な説明を記述します。 | クラス、関数、メンバ変数、構造体、列挙型 | | `@param` | 関数の引数の説明を記述します。 | 関数 | | `@param[in]` | 入力パラメータの説明を記述します。 | 関数 | | `@param[out]` | 出力パラメータの説明を記述します。 | 関数 | | `@param[in,out]` | 入出力パラメータの説明を記述します。 | 関数 | | `@return` | 関数の戻り値の説明を記述します。 | 関数 | | `@retval` | 特定の戻り値の説明を記述します。 | 関数 | | `@code` ~ `@endcode` | コード例を記述します。 | 全て | | `@note` | 注釈や注意点を記述します。 | クラス、関数、メンバ変数、構造体、列挙型 | | `@warning` | 警告を記述します。 | クラス、関数、メンバ変数、構造体、列挙型 | | `@see` | 参照先を記述します。 | 全て | | `@todo` | 未実装の項目や今後の課題を記述します。 | 全て | | `@exception` | 例外やエラー処理の説明を記述します。 | 関数 | | `@throw` | 関数がスローする例外を記述します。 | 関数 | | `@link` | リンクを記述します。 | 全て | | `@endlink` | リンクの終了を示します。 | 全て | | `@anchor` | アンカーを設定します。 | 全て | | `@ref` | 他ドキュメント要素への参照を記述します。 | 全て | | `@addtogroup` | グループ化する項目の開始を示します。 | 全て | | `@ingroup` | どのグループに属するかを示します。 | 全て | | `@defgroup` | グループの定義を行います。 | 全て | | `@section` | セクションを定義します。 | 全て | | `@subsection` | サブセクションを定義します。 | 全て |