atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
ViVa! Saborigineer.
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
ViVa! Saborigineer.
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
ViVa! Saborigineer.
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • ViVa! Saborigineer.
  • doxygen

ViVa! Saborigineer.

doxygen

最終更新:2007年02月13日 11:17

saborigineer

- view
管理者のみ編集可

doxygen

    みなさんは「doxygen」というツールをご存知でしょうか?
    Javaには「Javadoc」というものがありますが、それのC/C++版とでもいえるスバラシイツールです。

    ソースにdoxygenに合わせたコメントを記載しておけば、関数仕様書など作成する必要がありません。
    Windows、Linux問わず使用できるので、Saborigineer的には試さずにはいられません。


  • doxygen
  • doxygenのインストール
  • doxygenの設定
  • doxygen ~コメントの書き方
    • 変数宣言やDEFINEとdoxygenコメントを同じ行に書けないの?
  • doxygen ~コメントの書き方:残念な例
    • 構造体メンバーのコメント記述不足のため、HTMLの表示が不完全になる
    • 構造体一覧に簡易説明が表示されない (「\brief」)

doxygenのインストール

    doxygenのインストールについてはネット上に既に有用な情報がありますので、
    ここでの説明は省略します。

    詳しくは以下のサイトで。
    ・http://www.doxygen.jp/
    ・http://www.google.co.jp/search?hl=ja&q=doxygen&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja


doxygenの設定

    doxygenの設定は「Doxyfile」というファイルに記載されます。
    C言語ソースファイルに対して使用する場合は、以下の項目を設定すればよいでしょう。

・ PROJECT_NAME : プロジェクト名
・ OUTPUT_DIRECTORY : doxygen実行結果の出力先
・ OUTPUT_LANGUAGE : 言語の設定。日本語にしたいなら「Japanese」
・ OPTIMIZE_OUTPUT_FOR_C : C言語にあわせた出力結果にしたいので、「Yes」
・ EXTRACT_ALL : 全て解析対象にしたいので「Yes」
・ INPUT : 実行対象にするソースディレクトリの指定をする。
・ RECURSIVE : サブディレクトリも実行対象にしたいので「Yes」
・ GENERATE_HTML : HTML形式の出力をしたいので「Yes」
・ PREDEFINED : ソースコード中でifdef等を使用している場合はここに記載



doxygen ~コメントの書き方

    doxygenの一般的なコメントの記載方法については公式サイト等で説明されているので、 面倒なので 省略。
    ここでは、公式サイト等にはない書き方を説明します。


変数宣言やDEFINEとdoxygenコメントを同じ行に書けないの?

    公式サイトでは、↓のような書き方を説明されていますが、
    /**
     * 戻り値用変数
     */
    int result;

    実際コーディングする際には、可読性も考慮し、↓のようにするのが一般的なのではないかと思います。
    int result;   /* 戻り値用変数 */

    で、「可読性もキープしつつ、doxygenコメントも書きたいんだけど…」という場合には
    ↓のようにするとOKです。
    int result;   /**< 戻り値用変数 */


    これを応用すると、構造体でも可読性を保ちつつ、doxygenコメントを書くことができます。

    /**
     *  ~情報構造体
     */
    struct xxxx_info {
      unsigned short       type;      /**< 情報種別 */
      unsigned short       size;      /**< 情報長   */
    };


doxygen ~コメントの書き方:残念な例

    実際に使ってみて、思ったとおりにHTMLに出力されない等の残念なケースがありました。
    ここにその一例を載せたいと思います。

構造体メンバーのコメント記述不足のため、HTMLの表示が不完全になる

   ○残念:HTMLに表示されない
     struct setinfo /** @brief 設定情報用構造体定義 */    ←★1
     {
       int          reserve1 : 15  ;  ←★2
       int          LISTCTL : 1  ;  /**< リスト登録/削除 */
       int          reserve2 : 14  ;  ←★2
       int          DELOBJT : 1  ;  /**< 削除対象 */
       int          ADDOBJT : 1  ;  /**< 登録対象 */
     };

    ◎構造体のメンバーにdoxygenコメントがついていないものがある場合(「★2」)、
     せっかく記載した「★1」の部分の説明が残念ながらHTMLでは表示されません。

   ○OK:HTMLに表示される
     struct setinfo /** @brief 設定情報用構造体定義 */
     {
       int          reserve1 : 15  ;  /**< reserved */  ←★
       int          LISTCTL : 1  ;  /**< リスト登録/削除 */
       int          reserve2 : 14  ;  /**< reserved */  ←★
       int          DELOBJT : 1  ;  /**< 削除対象 */
       int          ADDOBJT : 1  ;  /**< 登録対象 */
     };


構造体一覧に簡易説明が表示されない (「\brief」)

    ※最新バージョンのdoxygenでは問題ないかも。

   ○残念:簡易説明が表示されない
    /**
     * 受信データ待ち合わせ状態設定構造体   ←★
     */
    struct xxx_cnt {
      uint_t rcv_cnt;    /**< 受信個数 */
      uint_t xxx_stat[3];  /**< 状態 (0:受信未 1:受信済 2:受信待) */
    };

    ◎「★」部分のdoxygenコメントで属性を指定していないため、
     せっかく記載した「★1」の部分の説明が残念ながらdoxygenでは表示されません。

      HTMLでの表示例
      ---
      データ構造 
      struct  xxx_cnt 
      struct  xxx_read 
      struct  xxx_softc 
      struct  xxx_chain 
      …
      ---

   ○OK:簡易説明が表示されない
    /**
     * \brief 受信データ待ち合わせ状態設定構造体    ←★
     */
    struct xxx_cnt {
      uint_t rcv_cnt;    /**< 受信個数 */
      uint_t xxx_stat[3];  /**< 状態 (0:受信未 1:受信済 2:受信待) */
    };

      HTMLでの表示例(★部分が表示される)
      ---
      データ構造 
      struct  xxx_cnt 
       受信データ待ち合わせ状態設定構造体 [詳細] ←★
      struct  xxx_read 
      struct  xxx_softc 
      struct  xxx_chain 
      …
      ---


タグ:

doxygen
「doxygen」をウィキ内検索
LINE
シェア
Tweet
ViVa! Saborigineer.
記事メニュー

Menu

  • トップページ

Main Contents

  • SoborigineerのTips
  • 日々の戯言


Other Contents

  • Link
  • プロフィール



Update History

取得中です。



  • @wiki

記事メニュー2
Today : -
Yesterday : -
Total : -


最近更新されたページ
  • 6668日前

    Eclipse
  • 6668日前

    EclipseでCUnit
  • 6668日前

    SoborigineerのTips
  • 6755日前

    日々の戯言/2007年02月18日
  • 6755日前

    日々の戯言/カテゴリ/ラーメン
  • 6755日前

    日々の戯言/2007年02月18日/屋台 味yoshi
  • 6760日前

    日々の戯言/2007年02月13日
  • 6760日前

    日々の戯言/カテゴリ/メイン
  • 6760日前

    日々の戯言/2007年02月13日/wiki & blog はじめました。
  • 6760日前

    メニュー
もっと見る
最近更新されたページ
  • 6668日前

    Eclipse
  • 6668日前

    EclipseでCUnit
  • 6668日前

    SoborigineerのTips
  • 6755日前

    日々の戯言/2007年02月18日
  • 6755日前

    日々の戯言/カテゴリ/ラーメン
  • 6755日前

    日々の戯言/2007年02月18日/屋台 味yoshi
  • 6760日前

    日々の戯言/2007年02月13日
  • 6760日前

    日々の戯言/カテゴリ/メイン
  • 6760日前

    日々の戯言/2007年02月13日/wiki & blog はじめました。
  • 6760日前

    メニュー
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. まどドラ攻略wiki
  2. MadTown GTA (Beta) まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. Dark War Survival攻略
  6. 軍事・武器解説wiki
  7. ソードランページ @ 非公式wiki
  8. PEAK (landfall) 攻略 @ ウィキ
  9. 魔法少女ノ魔女裁判 攻略・考察Wiki
  10. シミュグラ2Wiki(Simulation Of Grand2)GTARP
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  6. 検索してはいけない言葉 @ ウィキ
  7. モンスター烈伝オレカバトル2@wiki
  8. Abiotic Factor 日本語攻略Wiki
  9. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. Fate/Grand Order @wiki 【FGO】
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  3. 上田さんのギャング(仮称) - ストグラ まとめ @ウィキ
  4. FOG - ストグラ まとめ @ウィキ
  5. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  6. 玉兎 - Fate/Grand Order @wiki 【FGO】
  7. DERAY - ストグラ まとめ @ウィキ
  8. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  9. 上田 さん - ストグラ まとめ @ウィキ
  10. 首吊り気球 - アニヲタWiki(仮)
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.