Project_OKI’s diary

エンジニアの勉強ブログ

Doxygen6(構造体とenumのコメント)

 

・目次

 

 1.目的

 ・Javadocで使用されるコメントの書き方について記載する。

 ・コメントを記載した場合、Doxygenでどのように出力されるのか確認する。

  参考:Doxygen(コメント)

 

2.コメントの付け方

 ・JAVADOCには、それぞれコメントの種類によって、タグが用意されている。

 ・ここでは、下記3.Doxygenでドキュメント作成確認にて、それぞれのタグと、その意味、その結果としてDoxygenで作成した場合の出力結果を示している。

 ・Doxygenの設定に関しては下記ブログを参照

 →Doxygen4(DoxygenでGraphwizを使用) - Project_OKI’s diary

 

3.Doxygenでドキュメント作成確認(コメント)

/*
* @file           main.c
* @brief          メイン関数
* @date           2024/10/1
* $version:       Ver	1.0
* @author         OKI
* @note           MODEごとに計算するプログラム
*/
#include <stdio.h>
#include "main.h"

/**
 * @brief メイン関数
 * @return プログラムの終了コード
 */
int main() {
	printf("test");
    return 0;
}
/*
* @file           main.h
* @brief          メイン関数用ヘッダ
* @date           2024/10/1
* $version:       Ver	1.0
* @author         OKI
*/

/**
 *@enum 	列挙
 *@atention	注意事項
 *@throw	エラー条件
 *@note		メモ
 *@brief 	概要
 */
typedef enum{
	en1,		///<0
	en2,		///<1
	en3,		///<2
}ENU;

///t_enum列挙
typedef enum{
	t_en1,		///<0
	t_en2,		///<1
}TENU;

///@brief t_enum列挙
///@throw エラー条件
///@note メモ
typedef enum{
    t2_en1, ///<0
    t2_en2, ///<1
}TENU2;
/** *@struct 構造体 *@throw エラー条件 *@note メモ *@brief 概要 */ typedef struct{ ENU enu1; /// int st1; ///< st1変数 int st2; ///< st2変数 }ST; ///T_ST構造体 typedef struct{ int t_st1; ///< t_st1変数 }T_ST; /** *@throw エラー条件 *@note メモ *@brief M_ST構造体 */ typedef struct{ int m_st1; ///< t_st1変数 }M_ST;

 

---JAVADOC出力結果---

・構造体がある場合、Data Structuresタブが生成される。

・Data Structuresタブには構造体のまとめが書かれる。

・///又は、/**  */で囲むことにより、@タグの種類によって、設定できる。

 

・構造体をクリック時

 

・M_ST構造体をクリック時

 

・STクリック時

 

・T_STクリック時

上記のように構造体に関する情報がまとめられる。

 

・列挙型のまとめ

・main.h又は、ENUクリック時

 

 

4.Doxygenでドキュメント作成確認(実際に使用して作成した場合)

/**
* @file           main.c
* @brief          メイン関数
* @date           2024/10/1
* $version:       Ver	1.0
* @author         OKI
* @note           MODEごとに計算するプログラム
*/
#include <stdio.h>
#include "main.h"

/**
* @brief	2倍にする関数
* @param	int	:setnum(整数)
* @return	int	:引数を2倍した数値
**/
int CalcDouble(int setnum){
	int set = setnum * 2;	///<2倍の計算
	return(set * 2);	///<計算結果を返す。
}

#define	SETNUM1 10		///<MODE1設定時設定値
#define SETNUM2	20		///<MODE2時設定値
/**
* @brief	MODEを実行する関数
* @param	T_ModeData	g_ModeData(構造体)
* @return	MODEにより計算した数値
*/
int ModeSel(T_ModeData g_ModeData){
    int set = 0;                    	///<計算結果算出用変数
	switch(g_ModeData.mode){        ///<MODE確認
	case MODE1:                     ///<MODE1の時
		set = CalcDouble(SETNUM1); ///<2倍の計算実行
		break; 
	case MODE2:                     ///<MODE2の時
		set = CalcDouble(SETNUM2); ///<2倍の計算実行
		break;
	default:                       	///<それ以外の場合
		break;                    ///<何もせず終了
	}    
	return (set);
}

/**
 * @brief メイン関数
 * @return プログラムの終了コード
 */
int main() {
    ///T_ModeData構造体の宣言と初期化
	T_ModeData g_ModeData = {
		MODE1,		              ///<MODE1			
		{0,0,0},		      ///<計算格納値
	};
	
	///モードをループ(MODE1→MODE3を実行)
	for(g_ModeData.mode=MODE1;g_ModeData.mode<=MODE3;g_ModeData.mode++){
    	g_ModeData.modenum[g_ModeData.mode] = ModeSel(g_ModeData); ///<MODE実行     
    	printf("modenum = %d\n",g_ModeData.modenum[g_ModeData.mode]);///<MODE計算結果出力
	}
    return 0;
}
/**
* @file           main.h
* @brief          メイン関数用ヘッダ
* @date           2024/10/1
* $version:       Ver	1.0
* @author         OKI
*/


///@brief 	MODE選択用ステート
///@note	MODE1/MODE2/MODE3の設定用列挙型
typedef enum{
	MODE1,		///<MODE1選択
	MODE2,		///<MODE2選択
	MODE3,		///<MODE3選択
}MODE;

///testMode選択用ステート
typedef enum{
	TMODE1,		///<TMODE1選択
	TMODE2,		///<TMODE2選択
}TMODE;


///@brief MODE設定用構造体
///@note この構造体を使用し、各モードの設定を行うこと。
///modenumに各modeの計算結果を格納する。
typedef struct{
	MODE    mode;	    ///< 現在モード選択
	int     modenum[3]; ///< 計算用変数
}T_ModeData;

実行結果

https://paiza.io/projects/UHcKLEDZyOcgSOxgv08j1w

---JAVADOC出力結果---

 

・main.cファイル

 

・main.hファイル


・T_ModeData構造体

 

参考:

Doxygen(リストの作成方法)

Doxygen(コメント付け方)

ドキュメンテーションコメントからプログラミングを考える / 『エンジニアのためのJavadoc再入門講座』を読んだ - こまぶろ

JavaDocのタグ(主に関数)

#12 【入門】Javadocまとめ|NXTEDCo., Ltd.

 

関連記事

ソフトウェア資料作成

Doxygen1(Doxygenの魅力と活用法) - Project_OKI’s diary

Doxygen2(Doxygenの導入及び使用方法) - Project_OKI’s diary

Doxygen3(Javadocのコメント) - Project_OKI’s diary

Doxygen4(DoxygenでGraphwizを使用) - Project_OKI’s diary

Doxygen5(ファイルと関数のコメント) - Project_OKI’s diary