2012-07-02 66 views
1

我有一個C頭文件,有很多typedef和#defines。我想能夠得到的Doxygen在同一行接受的意見,這樣的:Doxygen的typedefs的同行文檔

typedef uint32_t U_NUM_LOGPLTNTRY;  //!< Number of U_LOGPLTENTRY 
typedef uint32_t U_NUM_RECTL;    //!< Number of U_RECTL 

這:

#define U_SRCCOPY  0xcc0020 //!< info for srccopy 
#define U_SRCPAINT 0xee0086 //!< info for srcpaint 

然而,無論這些形式工作。對於typedef,註釋應用於以下行。對於#define s的評論消失在以太。如果//!行在#define之前,那麼該評論與以下#define相關聯。但我真的不想要所有的評論由一行來抵消!

是否有一個Doxygen語法來做到這一點?我正在使用在Windows上運行的Doxygen 1.8.1.1。

+1

無法重現此行爲,在Doxygen 1.8.0(Win7) – Zeta

回答

3

這適用於我。我的猜測是,這個問題是由以上的引起的。如果Doxygen註釋塊緊接在typedef之上,則Doxygen可能會將其與typdef關聯,而不是內聯註釋。看看周圍的Doxygen評論,並確保沒有這樣的事情發生。

您也可以嘗試將typedefs放在標題中,看看Doxygen是否正確處理它們。如果是這樣,那麼問題很可能是受影響typedefs上方的文件中的某些內容。

另外,Doxygen是否在命令行上產生任何有用的輸出?如果沒有,嘗試在你的.doxyfile如下:

  • QUIET=NO
  • WARNINGS=YES
  • WARN_IF_DOC_ERROR=YES
0

我還沒有過真正的工作一路下跌包括文件,這是相當大,但在小測試文件中,這種格式正確地將組描述和每行描述關聯起來:

/** \defgroup ABC Description of ABC group 
    More information on the ABC group. 
    And yet more. 
    @{ 
*/ 
typedef uint32_t U_ONE_NAME;  //!< One name 
typedef uint32_t U_TWO_NAME;  //!< Two name 
/** @} */ 

原始文件有像「組描述」行:

//! Describe the next few lines 

這是一個邏輯組行之前。這種格式是不正確的 - 它只將描述與下一行聯繫起來,也許其中很多最終導致了轉換問題。

+0

上正常工作嗯。這帶來了另一個問題。使用上面顯示的格式\ \ #define的long(long!)列表在宏下列出,但沒有任何分組信息出現在那裏。只有當你點擊一個組員時,它纔會顯示。名稱也顯示在模塊中。有什麼方法可以在宏列表中的\ #define行之間的一行內插入模塊名稱信息(甚至只是組名)? – mathog