1

我有一个 C 库,我想为其自动生成一些 API 文档。Doxygen 似乎是这类事情的实际工具,所以我编写了几个玩具类(使用与我的库相同的编码风格)来测试它。关于编码风格的几点说明:

  • 每个类都有一个头 ( .h) 文件,其中包含类数据结构的 typedef 和所有类方法的原型。这是我希望图书馆的用户能够看到的信息。
  • 相应.c的文件包含完整的数据结构定义以及所有类方法的实现。API 文档中不应显示实现的细节。
  • 有关玩具示例代码,请参阅https://github.com/standage/doc-test

当我在我的示例上运行 Doyxgen 时,我得到的是:http ://standage.github.io/doc-test 。生成的文档有点混乱——有一个数据结构列表和一个文件列表。理想情况下,我想要一个类列表,其中每个类页面显示与该类关联的函数/方法,并且类名称链接到该类的详细信息页面。Doxygen(或任何其他工具)可以做到这一点吗?

4

2 回答 2

1

Doxygen 支持“C 类”的文档 - 只需添加

  1. \class包含其数据成员的结构的指令
  2. \memberof指令对其功能
  3. \public\private对函数/成员的指令

例子:

/** This is My Class!
    \class MyClass
    */
typedef struct MyClass
{
 /** This is member A 
   \private
   */
 int memberA;
 /** This is member B 
   \private
   */
 int memberB;

} MyClass;

/** A private member function of MyClass
    \param i Some value
    \private
    \memberof MyClass
    */
static void MyClass_privateFunction(struct MyClass* this, int i)
{
}

/** A public member function of MyClass
    \param j Some other value
    \public
    \memberof MyClass
    */
void MyClass_publicFunction(struct MyClass* this, int j)
{
}

如果将 Doxygen 设置EXTRACT_PRIVATENO,则只会记录公共部分。

于 2016-08-22T08:02:47.977 回答
0

查看配置文件中的排除系列标签。

由于您的源位于 ./src/ 目录中,因此一种选择可能是使用以下之一:

排除目录:

EXCLUDE = /src

排除文件名模式:

EXCLUDE_PATTERNS = *.c

这些都在我的脑海中。您可能需要添加一些路径信息。我希望使用第一个或两者都会产生在 C 文件中没有任何注释的输出。

作为旁注,您认为为您的“类”使用接口结构会满足您的要求吗?

于 2013-09-19T20:29:54.893 回答