我已经使用Doxygen多年来处理C++代码。我想在我正在工作的一些C代码中使用它,但输出结果不太理想。顶部栏中的“Classes”选项卡仅显示struct
定义,而未显示文件中的函数。我必须点击“Files”选项卡,然后点击头文件名称才能查看其包含的函数。
是否有办法修改Doxygen的输出结果,使其更适合处理C语言编写的代码?或者至少删除“Classes”选项卡,只提供“Files”视图?
我已经使用Doxygen多年来处理C++代码。我想在我正在工作的一些C代码中使用它,但输出结果不太理想。顶部栏中的“Classes”选项卡仅显示struct
定义,而未显示文件中的函数。我必须点击“Files”选项卡,然后点击头文件名称才能查看其包含的函数。
是否有办法修改Doxygen的输出结果,使其更适合处理C语言编写的代码?或者至少删除“Classes”选项卡,只提供“Files”视图?
OPTIMIZE_OUTPUT_FOR_C = YES
doxygen -l layout.xml
<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网站。
您可以使用以下结构来封装 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);
/**
* @}
*/