C语言的Doxygen输出

6

我已经使用Doxygen多年来处理C++代码。我想在我正在工作的一些C代码中使用它,但输出结果不太理想。顶部栏中的“Classes”选项卡仅显示struct定义,而未显示文件中的函数。我必须点击“Files”选项卡,然后点击头文件名称才能查看其包含的函数。

是否有办法修改Doxygen的输出结果,使其更适合处理C语言编写的代码?或者至少删除“Classes”选项卡,只提供“Files”视图?


/**
  • @defgroup MY_C_CLASS
  • @{ */
/**
  • @defgroup MY_C_CLASS
  • @{ */
- MichaelMoser
3个回答

7
您可以设置
OPTIMIZE_OUTPUT_FOR_C = YES

在配置文件中,要获得更加面向C语言的输出。

3
如果您创建了一个布局文件,除了正常的配置文件之外:
doxygen -l layout.xml

你可以编辑这个,它控制界面的基本格式。如果你想要移除“Classes”选项卡,请找到:
<tab type="classes" visible="yes" title="Types">
    [...]
</tab>

请移除它或将visible更改为"no"。

C函数和数据类型通常按照一定的规律分组到文件中,因此仅使用"文件"选项卡可能已经足够了。如果不行,可以使用分组:

\ingroup foobar

可以添加到结构体和函数定义等中。然后您需要一个。
\defgroup foobar Description of foobar.

某个地方。然后由此被使用。

<tab type="modules" visible="yes" title="Modules" intro=""/>

通过layout.xml文件,生成的接口可能比“文件”更直观(例如,如果结构文档来自.h文件并且函数文档来自.c文件,它们会在同一组中组织在一起),类似于C ++中“类”的工作方式。

有关此内容的更多信息,请参见doxygen网站


0

您可以使用以下结构来封装 C 类 MY_C_CLASS 的结构和函数声明

我通常将函数的 Doxygen 帮助信息放在帮助文件中,以便与类组一起分组。

/**
 * @defgroup MY_C_CLASS
 * @brief MY_C_CLASS class
 * describe here what it is all about.
 * @{
 */

 typedef struct tagMY_C_CLASS {

 } MY_C_CLASS;

 /**
  * @brief constructor
  * @return status; -1 on failure.
  */
 int MY_C_CLASS_init(MY_C_CLASS *void);

/**
 * @}
 */

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接