Doxygen記述ルール
=================
C/C++言語のソースを記述例について説明。
Doxygen文法マニュアル
--------------------
「[[http://www.doxygen.jp/manual.html|Doxygen マニュアル]]」の特に下記ページを参照。
* [[http://www.doxygen.jp/commands.html|特殊コマンド]]
* [[http://www.doxygen.jp/docblocks.html|コードのドキュメント付け]]
* [[http://kasamotokun.endless-world.net/doxygen-manual/markdown.html|Markdownサポート]]
Doxygen設定項目
--------------
設定ファイル「`Doxyfile`」は、`doxygen -g` コマンド実行でデフォルト値ファイルが生成できる。特に下記項目について留意して設定する。
^ 必須 ^ 設定項目 ^ 設定値 ^ 備考 ^
| ◎ | `PROJECT_NAME` | `"サンプル Project"` | プロジェクト名またはプログラム名を記述する |
| ◎ | `OUTPUT_LANGUAGE` | `Japanese` | 日本語出力する |
| ◎ | `OPTIMIZE_OUTPUT_FOR_C` | `YES` | C/C++言語ではYESに設定 |
| | `PROJECT_NUMBER` | `1.1` | バージョン情報が必要であれば記述する |
| △ | `RECURSIVE` | `NO` or `YES` | `YES`にするとDoxygen実行ディレクトリ以下を再帰的に探してドキュメントを生成する |
| | `GENERATE_LATEX` | `NO` | LaTeX出力をしない(時間がかかるので、通常は抑制し、必要時にYESにする) |
| | `HAVE_DOT` | `NO` | graphvizを使用しない(時間がかかるので、通常は抑制し、必要時にYESにする) |
コメント規約ルール例
-------------------
以下の **ファイル**,**グローバル関数**,**グローバル変数**,**来歴** のコメントについては最低限記述する。`doxygen` コマンド実行でドキュメントを生成する。
### ファイル・コメント
ファイルの先頭に、そのファイルの概要説明を記述。
/**
* @file sample.c
* @brief GCC Test sample program
* @author T.Yokobayashi de JR4QPV
* @date 2020/04/16
*/
* 必要があれば、`@details` に詳細説明を記載。
### グローバル関数・コメント
関数の直前に記述。グローバル関数は `************` 行を上下に付加して強調する。
/**
*****************************************************************************
* @brief Sample main program
* @param argc 引数の個数
* @param argv 引数文字列
* @retval 0 正常
* @retval 1 引数エラー
* @details
*****************************************************************************
*/
int main(int argc, char *argv[])
{
int i;
* 戻り値は`retval`で数値を指定せず「`@return =0:正常, =-1:異常`」などのように簡単に記述してもよい。
* `@attention`の注意事項は無ければ省略する。
* 引数と戻り値がない時は「`none`」と記述する。
`@param none`
`@return none`
### ファイル内関数・コメント
関数の直前に記述。ファイル内スコープの static関数 は、Doxygenではドキュメント出力されないようだが、ソースをみれば関数の使い方が判るように以下のように記載しておく。
/**
* @brief サブルーチン関数
* @param mode モード指定(0 or 1)
* @return 終了コード(=0:正常, ≠0:エラー)
* @details
* - modeが不正な時は「-1」が戻る
*/
static int sub_function(int mode)
{
int rc;
### グローバル変数・コメント
グローバル変数の簡易説明を下記のように記述。
T_MYTBL _mytbl[16]; //!< 管理テーブル
* `//!<` は `///<` と書いてもよい。
* `/*!< Node管理テーブルの実態 */`のよう記述すると、別セクションに独立に説明が出力される。
### 来歴・コメント
ファイルの末尾に、そのファイルの来歴説明を記述。
/**
*----------------------------------------------------------------------------
* @file main.c
* History
* -------
* - 2018/11/04 New created.(By T.Yokobayashi)
* - 2020/04/16 Write a Doxygen comment.
*/
* `@file`の記述がキーとなるので、先頭に記述したファイル名と必ず一致するようにする。
* 最低限以下の情報は記載する。細かい変更はGitで管理できる。
「新規作成日・作成者」,「大きな機能変更」,「大きなバグ修正」
その他のコメント
---------------
### 覚え書き
下記記述で、関数の使用法などの留意点などを残す。
@note メモメモ
### 残作業
下記記述で、残作業をドキュメントに残す。
///@todo 残作業メモ
### バグ
下記記述で、バグ情報をドキュメントに残す。
///@bug バグ情報メモ
補足
----
* 説明文の記述には[[http://kasamotokun.endless-world.net/doxygen-manual/markdown.html|Markdown]]記法が使える。なので、「`## `」で見出し,「`- `」文字で箇条書き になる。
* その他にも色々なコマンドがある。
参考
----
1. [[http://www.02.246.ne.jp/~torutk/cxx/doxygen/doxygenstyles.html|Doxygenコメント規約例]]
{{tag>Rules}}