2011-08-26 61 views
12

我正在使用doxygen來評論我的C代碼。我正在使用一個國外的API(即不是我自己的),因爲我的文檔很少,所以我打算在我自己的源文件中記錄一些API。我有外國API的頭文件,但它是不實際的添加我自己的評論,該文件。使用doxygen來記錄結構定義之外的c結構的成員

外國頭

struct foreignstruct 
{ 
    int a; 
    int b; 
}; 

我的頭

/** My structure comments... 
struct mystruct 
{ 
    /** Describe field here... */ 
    int field; 
}; 

/** @struct foreignstruct 
* @brief This structure blah blah blah... 
* @??? a Member 'a' contains... 
* @??? b Member 'b' contains... 
*/ 

我代替@???用什麼標籤,以獲得正確的doxygen輸出(其中 '正確' 的裝置產生的輸出mystructforeignstruct是一樣的)?

回答

15

也許有一天會doxygen的有這個特殊的@field標籤,直到那個時候,可以使用下列:

/** @struct foreignstruct 
* @brief This structure blah blah blah... 
* @var foreignstruct::a 
* Member 'a' contains... 
* @var foreignstruct::b 
* Member 'b' contains... 
*/ 

這是

/** @struct foreignstruct 
* @brief This structure blah blah blah... 
*/ 
/** @var foreignstruct::a 
* Member 'a' contains... 
*/ 
/** @var foreignstruct::b 
* Member 'b' contains... 
*/ 
+0

這是一個簡單的記法如果'foreignstruct'位於由doxygen解析的文件中,解決方案就可以工作。如果該文件不知道doxygen,你期望它能夠工作嗎?我看到'警告:當foreignstruct定義無法找到時(這是正確的,因爲我不想doxygen解析該外部頭部),找不到唯一匹配的foremanttruct :: a'類成員。我已經嘗試添加頭文件的路徑('@struct foreignstruct/full/path/to/header.h'),但是我得到了'warning:作爲參數提供的名字'full/path/to/header.h' \ class,\ struct,\ union或\ include命令不是輸入文件。 – Ben

+0

這個結構確實應該被doxygen知道。所以你可以讓doxygen除了你的本地文檔之外解析外部頭文件,或者在本地添加一個帶有字段結構的虛擬定義(但是你不必使用@struct和@var)。 – doxygen

+0

不是我希望答案會是什麼,但它是我期待的答案。謝謝您的幫助。 – Ben