• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            程序文檔,曾經(jīng)是程序員的一個頭痛問題。寫一個程序文檔,比較花時間,但不是很難;麻煩的是當程序修改后,程序文檔也要跟著同步更新,否則文檔和程序就要脫節(jié),文檔也就變成沒用的東西了。

            好在有許多好用的文檔生成器來解決這個問題。目前比較流行的C++文檔生成器是doxygen。
            本文就簡單的介紹一下doxygen的文檔注釋方法,以供初學(xué)者參考:

            C++ 程序文檔生成器介紹(doxygen)     沐楓網(wǎng)志

            1. 模塊定義(單獨顯示一頁)
            /*
             * @defgroup 模塊名 模塊的說明文字
             * @{
             */
             
             ... 定義的內(nèi)容 ...
             
            /** @} */ // 模塊結(jié)尾
             
            2. 分組定義(在一頁內(nèi)分組顯示)
            /*
             * @name 分組說明文字
             * @{
             */
             
             ... 定義的內(nèi)容 ...
             
            /** @} */
             
            3. 變量、宏定義、類型定義簡要說明
            /** 簡要說明文字 */
            #define FLOAT float
             
            /** @brief 簡要說明文字(在前面加 @brief 是標準格式) */
            #define MIN_UINT 0
             
            /*
             * 分行的簡要說明 \n
             *  這是第二行的簡要說明
             */
            int b;
             
            4. 函數(shù)說明
            /*
             * 簡要的函數(shù)說明文字 
             *  @param [in] param1 參數(shù)1說明
             *  @param [out] param2 參數(shù)2說明
             *  @return 返回值說明
             */
            int func(int param1, int param2);
             
            /*
             * 打開文件 \n
             *  文件打開成功后,必須使用 ::CloseFile 函數(shù)關(guān)閉。
             *  @param[in] file_name 文件名字符串
             *  @param[in] file_mode 文件打開模式字符串,可以由以下幾個模塊組合而成:
             *  - r 讀取
             *  - w 可寫
             *  - a 添加
             *  - t 文本模式(不能與 b 聯(lián)用)
             *  - b 二進制模式(不能與 t 聯(lián)用)
             *  @return 返回文件編號
             *  - -1 表示打開文件失敗
             
             *  @note 文件打開成功后,必須使用 ::CloseFile 函數(shù)關(guān)閉
             *  @par 示例:
             *  @code
                // 用文本只讀方式打開文件
                int f = OpenFile("d:\\test.txt", "rt");
             *  @endcode
             
             *  @see ::ReadFile ::WriteFile ::CloseFile
             *  @deprecated 由于特殊的原因,這個函數(shù)可能會在將來的版本中取消。
             */
            int OpenFile(const char* file_name, const char* file_mode);
             
            5. 枚舉類型定義
            /** 枚舉常量 */
            typedef enum TDayOfWeek
            {
            SUN = 0, /**<  星期天(注意,要以 “<” 小于號開頭) */
            MON = 1, /**<  星期一 */
            TUE = 2, /**<  星期二 */
            WED = 3, /**<  星期三 */
            THU = 4, /**<  星期四 */
            FRI = 5, /**<  星期五 */
            SAT = 6  /**<  星期六 */
            }
            /** 定義類型 TEnumDayOfWeek */
            TEnumDayOfWeek;  
              
            6. 項目符號標記
              /* 
               *  A list of events:
               *    - mouse events
               *         -# mouse move event
               *         -# mouse click event\n
               *            More info about the click event.
               *         -# mouse double click event
               *    - keyboard events
               *         -# key down event
               *         -# key up event
               *
               *  More text here.
               */
             

            結(jié)果為:

            A list of events:

            • mouse events
              1. mouse move event
              2. mouse click event
                More info about the click event.
              3. mouse double click event
            • keyboard events
              1. key down event
              2. key up event

            More text here.

            代碼示范:
            /*
             * @defgroup EXAMPLES 自動注釋文檔范例
             * @author  沐楓
             * @version 1.0
             * @date    2004-2005
             * @{
             
            */



            /*
             * @name 文件名常量
             * @{
             
            */


            /** 日志文件名 */
            #define LOG_FILENAME "d:\\log\\debug.log"
            /** 數(shù)據(jù)文件名 */
            #define DATA_FILENAME "d:\\data\\detail.dat"
            /** 存檔文件名 */
            #define BAK_FILENAME "d:\\data\\backup.dat"

            /** @}*/ // 文件名常量

            /*
             * @name 系統(tǒng)狀態(tài)常量
             *  @{
             
            */

             
            /** 正常狀態(tài) */
            #define SYS_NORMAL 0
            /** 故障狀態(tài) */
            #define SYS_FAULT 1
            /** 警告狀態(tài) */
            #define SYS_WARNNING 2

            /** @}*/ // 系統(tǒng)狀態(tài)常量



            /** 枚舉常量 */
            typedef 
            enum TDayOfWeek
            {
                    SUN 
            = 0/**< 星期天 */
                    MON 
            = 1/**< 星期一 */
                    TUE 
            = 2/**< 星期二 */
                    WED 
            = 3/**< 星期三 */
                    THU 
            = 4/**< 星期四 */
                    FRI 
            = 5/**< 星期五 */
                    SAT 
            = 6  /**< 星期六 */
            }

            /** 定義類型 TEnumDayOfWeek */
            TEnumDayOfWeek;  
            /** 定義類型 PEnumDayOfWeek */
            typedef TEnumDayOfWeek
            * PEnumDayOfWeek; 

            /** 定義枚舉變量 enum1 */
            TEnumDayOfWeek enum1;        
            /** 定義枚舉指針變量 enum2 */
            PEnumDayOfWeek p_enum2; 



            /*
             * @defgroup FileUtils 文件操作函數(shù)
             * @{
             
            */


            /*
             * 打開文件 \n
             *  文件打開成功后,必須使用 ::CloseFile 函數(shù)關(guān)閉。
             *  @param[in] file_name 文件名字符串
             *  @param[in] file_mode 文件打開模式字符串,可以由以下幾個模塊組合而成:
             *  - r 讀取
             *  - w 可寫
             *  - a 添加
             *  - t 文本模式(不能與 b 聯(lián)用)
             *  - b 二進制模式(不能與 t 聯(lián)用)
             *  @return 返回文件編號
             *  - -1 表示打開文件失敗
             
             *  @note 文件打開成功后,必須使用 ::CloseFile 函數(shù)關(guān)閉
             *  @par 示例:
             *  @code
                // 用文本只讀方式打開文件
                int f = OpenFile("d:\\test.txt", "rt");
             *  @endcode
             
             *  @see ::ReadFile ::WriteFile ::CloseFile
             *  @deprecated 由于特殊的原因,這個函數(shù)可能會在將來的版本中取消。
             
            */

            int OpenFile(const char* file_name, const char* file_mode);

            /*
             * 讀取文件 
             *  @param[in] file 文件編號,參見:::OpenFile
             *  @param[out] buffer 用于存放讀取的文件內(nèi)容
             *  @param[in] len 需要讀取的文件長度
             *  @return 返回讀取文件的長度
             *  - -1 表示讀取文件失敗
             
             *  @pre \e file 變量必須使用 ::OpenFile 返回值
             *  @pre \e buffer 不能為 NULL
             *  @see ::OpenFile ::WriteFile ::CloseFile
             
            */

            int ReadFile(int file, char* buffer, int len);

            /*
             * 寫入文件 
             *  @param[in] file 文件編號,參見:::OpenFile
             *  @param[in] buffer 用于存放將要寫入的文件內(nèi)容
             *  @param[in] len 需要寫入的文件長度
             *  @return 返回寫入的長度
             *  - -1 表示寫入文件失敗
             
             *  @pre \e file 變量必須使用 ::OpenFile 返回值
             *  @see ::OpenFile ::ReadFile ::CloseFile
             
            */

            int WriteFile(int file, const char* buffer, int len);

            /*
             * 關(guān)閉文件 
             *  @param file 文件編號,參見:::OpenFile
             *  @retval 0  為成功
             *  @retval -1 表示失敗
             
             *  @see ::OpenFile ::WriteFile ::ReadFile
             *  @deprecated 由于特殊的原因,這個函數(shù)可能會在將來的版本中取消。
             
            */

            int CloseFile(int file);

            /** @}*/ // 文件操作函數(shù)

            /** @}*/ // 自動注釋文檔范例


            生成的chm文檔截圖:



            范例下載:
            /Files/ly4cn/doxygen_example.rar
            posted on 2010-11-15 17:07 大寶天天見 閱讀(801) 評論(0)  編輯 收藏 引用 所屬分類: 1.Book/Tools
            久久精品国产亚洲AV无码麻豆 | 日本精品久久久久中文字幕8| 99久久精品免费观看国产| 99久久这里只精品国产免费| 久久国产精品99久久久久久老狼| 一本一本久久a久久精品综合麻豆| 97久久久久人妻精品专区| 怡红院日本一道日本久久 | 精品人妻伦一二三区久久| 欧美黑人又粗又大久久久| 久久久WWW免费人成精品| 日本免费久久久久久久网站| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲国产成人久久精品99| 国产亚洲精午夜久久久久久| 国产国产成人精品久久| 久久婷婷激情综合色综合俺也去| 亚洲AV伊人久久青青草原| 国产日韩久久久精品影院首页| avtt天堂网久久精品| 亚洲成色www久久网站夜月| 欧美激情精品久久久久久| 精品国产热久久久福利| 国产成人综合久久久久久| 久久99精品国产麻豆宅宅| 成人妇女免费播放久久久| 九九精品99久久久香蕉| 精品久久久久久无码专区 | 色综合久久天天综线观看| 国产精品久久久99| 精品无码久久久久久国产| 久久精品夜色噜噜亚洲A∨| 久久久综合香蕉尹人综合网| 久久激情五月丁香伊人| 久久无码精品一区二区三区| 亚洲国产精品一区二区三区久久| 久久亚洲国产成人精品无码区| 久久天天婷婷五月俺也去| 久久www免费人成看片| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 欧美国产成人久久精品|