2011-08-26 28 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