• <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>

            勤能補(bǔ)拙,Expter

            成都游戲Coder,記錄游戲開(kāi)發(fā)過(guò)程的筆記和心得!

            轉(zhuǎn):doxygen 使用簡(jiǎn)介(C,C++為代碼作注釋?zhuān)?

             如果打算使用doxygen為代碼產(chǎn)生文檔,在編寫(xiě)代碼時(shí)首先要為代碼添加doxygen風(fēng)格的注釋?zhuān)@些doxygen風(fēng)格的注釋可以稱(chēng)為文檔塊,添加注釋的這個(gè)動(dòng)作可以稱(chēng)為文檔化代碼。Doxygen會(huì)根據(jù)相應(yīng)的doxygen注釋塊為代碼生成相應(yīng)的文檔。

                對(duì)每個(gè)代碼條目,doxygen有兩種(在某些情況下可以3種)類(lèi)型的說(shuō)明,共同組成文檔:簡(jiǎn)要說(shuō)明和詳細(xì)說(shuō)明,對(duì)應(yīng)方法和函數(shù)可以有第三種風(fēng)格的注釋?zhuān)瘮?shù)體內(nèi)注釋。

                簡(jiǎn)要說(shuō)明只有一行長(zhǎng),詳細(xì)說(shuō)明可以有多行。

             
            注釋風(fēng)格
            詳細(xì)注釋可以有如下風(fēng)格

            1、JavaDoc風(fēng)格的注釋?zhuān)@種風(fēng)格的注釋是在C風(fēng)格的注釋塊開(kāi)始處有兩個(gè) “ * “,如下:

            /**
             * ... 注釋塊 ...
             */

            2、可以采用QT風(fēng)格的注釋?zhuān)@種風(fēng)格的注釋是在C風(fēng)格的注釋塊開(kāi)始處“ * “后面緊跟”!”,如下:

            /*!
             * ... 注釋塊 ...
             */

            以上兩個(gè)例子中 text前的 “ * “ 是可選的,可以寫(xiě)成

            /**
             ... 注釋塊 ...
            */



            /*!
            ... 注釋 ...
            */

            3、單行注釋也可以采用如下方式

            ///
            /// ... 注釋 ...
            ///



            //!
            //!... 注釋 ...
            //!

            4、如下注釋也是可以的

            /********************************************//**
             *  ... 注釋
             ***********************************************/

            或者

            /////////////////////////////////////////////////
            /// ...注釋...
            /////////////////////////////////////////////////
            簡(jiǎn)要說(shuō)明有如下格式

            1、              使用\brief 命令指定簡(jiǎn)要說(shuō)明,簡(jiǎn)要說(shuō)明以”.” 結(jié)束,詳細(xì)說(shuō)明在接下來(lái)的一個(gè)空行后開(kāi)始,如下:

            /*! \brief 簡(jiǎn)要說(shuō)明.
             *         簡(jiǎn)要說(shuō)明續(xù).
             *
             *  詳細(xì)說(shuō)明(上面要留一個(gè)空行).
             */

            如果配置文件中把 JAVADOC_AUTOBRIEF  設(shè)置成 YES,則可以使用JavaDoc風(fēng)格注釋塊, 這種風(fēng)格的注釋?zhuān)?jiǎn)要說(shuō)明自動(dòng)從“*“后開(kāi)始 ,直到第一個(gè)”.”號(hào)結(jié)束,例如:

            /** 簡(jiǎn)要說(shuō)明.
             *  詳細(xì)說(shuō)明.
             */

            多行C++風(fēng)格注釋?zhuān)?br>
            /// 簡(jiǎn)要說(shuō)明.
            /// 詳細(xì)說(shuō)明.

            3、可以采用如下注釋?zhuān)?br>
            /// 簡(jiǎn)要說(shuō)明.
            /** 詳細(xì)說(shuō)明. */

            或者

            //! 簡(jiǎn)要說(shuō)明.

            //! 詳細(xì) (上面的空行是需要的)
            //! 說(shuō)明.

               上例中間空行用來(lái)分隔簡(jiǎn)要說(shuō)明和詳細(xì)說(shuō)明的。請(qǐng)注意下面格式的注釋是不合法的,doxygen只允許一條詳細(xì)說(shuō)明對(duì)應(yīng)一條簡(jiǎn)要說(shuō)明:

            //!簡(jiǎn)潔描述信息
            //! 詳細(xì)描述信息
            /*! 注意,又一詳細(xì)描述信息!
             */

                如果一個(gè)代碼項(xiàng)的聲明和定義之前都有簡(jiǎn)要說(shuō)明,則doxygen只使用聲明之前的說(shuō)明。

                如果一個(gè)代碼項(xiàng)在聲明和定義之前都有詳細(xì)說(shuō)明, 則doxygen使用定義之前的說(shuō)明。
                
            用QT風(fēng)格注釋的C++代碼樣例

             

            //!  A test class.
            /*!
              A more elaborate class description.
            */

             

            class Test
            {

              public:

                //! An enum.
                /*! More detailed enum description. */
                enum TEnum {
                    TVal1, /*!< Enum value TVal1. */
                    TVal2, /*!< Enum value TVal2. */
                    TVal3  /*!< Enum value TVal3. */
                }
                //! Enum pointer.
                /*! Details. */
                *enumPtr,//! Enum variable.
                         /*! Details. */

                enumVar; //! A constructor.
                        
                /*!
                  A more elaborate description of the constructor.
                */
                Test();

             

                //! A destructor.
                /*!
                  A more elaborate description of the destructor.
                */
               ~Test();

               

                //! A normal member taking two arguments and returning an integer value.
                /*!
                  \param a an integer argument.
                  \param s a constant character pointer.
                  \return The test results
                  \sa Test(), ~Test(), testMeToo() and publicVar()
                */

                int testMe(int a,const char *s);
                  

                //! A pure virtual member.
                /*!
                  \sa testMe()
                  \param c1 the first argument.
                  \param c2 the second argument.
                */

                virtual void testMeToo(char c1,char c2) = 0;
             

                //! A public variable.
                /*!
                  Details.
                */

                int publicVar;

                  

                //! A function variable.
                /*!
                  Details.
                */

                int (*handler)(int a,int b);

            };

             


            如果配置文件中JAVADOC_AUTOBRIEF 設(shè)置成 YES,可以使用JavaDoc風(fēng)格注釋
             

            /**
             *  A test class. A more elaborate class description.
             */

             

            class Test
            {

              public:

             

                /**
                 * An enum.
                 * More detailed enum description.
                 */

             

                enum TEnum {
                      TVal1, /**< enum value TVal1. */
                      TVal2, /**< enum value TVal2. */
                      TVal3  /**< enum value TVal3. */
                     }
                   *enumPtr, /**< enum pointer. Details. */
                   enumVar;  /**< enum variable. Details. */
                  

                  /**
                   * A constructor.
                   * A more elaborate description of the constructor.
                   */

                  Test();

             

                  /**
                   * A destructor.
                   * A more elaborate description of the destructor.
                   */

                 ~Test();

               

                  /**
                   * a normal member taking two arguments and returning an integer value.
                   * @param a an integer argument.
                   * @param s a constant character pointer.
                   * @see Test()
                   * @see ~Test()
                   * @see testMeToo()
                   * @see publicVar()
                   * @return The test results
                   */

                   int testMe(int a,const char *s);

                  

                  /**
                   * A pure virtual member.
                   * @see testMe()
                   * @param c1 the first argument.
                   * @param c2 the second argument.
                   */
                   virtual void testMeToo(char c1,char c2) = 0;


                  /**
                   * a public variable.
                   * Details.
                   */

                   int publicVar;

                  

                  /**
                   * a function variable.
                   * Details.
                   */

                   int (*handler)(int a,int b);

            };


            From:http://www.embstudy.org/home/space.php?uid=8&do=blog&id=66

            posted on 2009-07-25 17:46 expter 閱讀(758) 評(píng)論(1)  編輯 收藏 引用

            評(píng)論

            # re: 轉(zhuǎn):doxygen 使用簡(jiǎn)介(C,C++為代碼作注釋?zhuān)? 2009-07-25 18:21 黑色靈貓

            本文不錯(cuò),最近剛弄好lua的,返回來(lái)看下c++的doxygen,免得再google了  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久97久久97精品免视看| 影音先锋女人AV鲁色资源网久久 | 亚洲精品国产美女久久久| 亚洲国产精品综合久久网络| 国产色综合久久无码有码| 九九精品99久久久香蕉| 久久国产热这里只有精品| 久久亚洲AV无码精品色午夜| 国产成人久久精品激情| 久久久久亚洲AV无码专区首JN| 国产亚洲精久久久久久无码| 2021国产精品午夜久久| 99久久无码一区人妻| 久久亚洲精品国产精品| 久久久久亚洲精品男人的天堂 | 日本久久久久久久久久| 久久91综合国产91久久精品| 色青青草原桃花久久综合| 精品无码久久久久久国产| 伊人久久综合成人网| 久久久国产视频| 欧美激情精品久久久久久久| 中文字幕亚洲综合久久2| 国内精品久久久久伊人av| 香蕉久久影院| 色老头网站久久网| 久久久国产视频| 久久精品国产男包| 日日狠狠久久偷偷色综合0| 国产精品欧美久久久久天天影视| 人妻精品久久无码区| 色综合久久中文字幕无码| 久久这里都是精品| 国产成年无码久久久免费| 99久久精品国产一区二区 | 999久久久免费精品国产| 国产韩国精品一区二区三区久久| 久久乐国产综合亚洲精品| 亚洲精品无码久久久久| 一本一本久久aa综合精品| 欧美喷潮久久久XXXXx|