Doxygen 是一個(gè)類似 JavaDoc 的文檔生成工具。有了它,C++愛好者就可以為自己的源代碼很方便地生成美觀實(shí)用的文檔了。 為代碼生成文檔標(biāo)注基礎(chǔ) 您可以使用JavaDoc風(fēng)格,類似于由C風(fēng)格的注釋塊: /** * ... 文本 ... */ 此外您也可以使用Qt風(fēng)格,如 /*! * ... 文本... */ 以上兩種風(fēng)格中間的*是可選的,也就是下面這樣寫也是可以的: /*! ... 文本... */ 第三種是使用至少兩行C++"http://"注釋,如: /// /// ... 文本... /// 或者 //! 有的程序員也許喜歡下面這種風(fēng)格,有比較好的視覺效果: ///////////////////////////////////////////////// /// ... 文本... ///////////////////////////////////////////////// 對(duì)于簡(jiǎn)單的描述信息,可能有幾種情況。一種是在注釋塊的開頭使用\brief命令,該命令一直到段落結(jié)束有效,所以詳細(xì)描述信息從空一行后開始,如下例: /*! \brief 簡(jiǎn)潔的描述信息 description. * 又一些簡(jiǎn)潔的描述信息。 * * 詳細(xì)描述信息從這里開始。 */ 在配置文件中,如果JAVADOC_AUTOBRIEF設(shè)為YES,則Doxygen將使用JavaDoc風(fēng)格的注釋塊,從簡(jiǎn)潔描述信息后的點(diǎn)空格. 開始為詳細(xì)描述信息,例如: /** 簡(jiǎn)潔信息結(jié)尾是一個(gè)點(diǎn)號(hào). 詳細(xì)描述信息從 * 這里開始 */ 該選項(xiàng)對(duì)C++風(fēng)格的多行注釋也是有效的: ///簡(jiǎn)潔信息結(jié)尾是一個(gè)點(diǎn)號(hào). 詳細(xì)描述信息從 ///這里開始 或者: /// 簡(jiǎn)潔描述信息 /** 詳細(xì)描述信息*/ 或者: //!簡(jiǎn)潔描述信息 //!詳細(xì)描述信息從 //!這里開始 此例中間空行用來(lái)分割簡(jiǎn)潔描述信息塊和詳細(xì)描述信息塊??梢奷oxygen的文檔標(biāo)注使用格式是非常自由的。不過(guò)要注意下面格式是不合法的,因?yàn)閐oxygen只允許一塊詳細(xì)描述信息對(duì)應(yīng)一塊簡(jiǎn)潔描述信息: //!簡(jiǎn)潔描述信息 //! 詳細(xì)描述信息 /*! 注意,又一詳細(xì)描述信息! */ 下例使用Qt風(fēng)格的文檔標(biāo)注: //! 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); }; Doxygen的文檔標(biāo)注是不是非常容易?當(dāng)然還可以有更高級(jí)的應(yīng)用,如標(biāo)注列表、分組,甚至支持生成公式(Latex)。上面只編譯了最簡(jiǎn)單的一些使用方法,更多內(nèi)容請(qǐng)參考Doxygen的幫助文檔doxygen_manual。 |
聯(lián)系客服