实用工具推荐----Doxygen使用方法

目录

目录

1 软件介绍

2 Doxygen软件下载方法

3 Doxygen软件配置方法

4 标准注释描述

4.1 块注释 和 特殊描述字符

4.1.1 函数描述示例

4.1.2结构体数组变量示例

特别注意:

4.2单行注释

4.2.1 单个变量注释示例

特别注意:

4.2.2对于枚举变量描述示例

4.3 markdown语法使用及效果

4.4 类图 & 流程图调用关系生成方法


1 软件介绍

Doxygen是通过注释过的源代码文件来生成文档的工具,常用的语言例如C、Objective-C、C#、PHP、Java、Python、IDL等。它可以从一组有文档的源文件生成在线文档浏览器(HTML格式)和/或离线参考手册(LaTeX格式)。它还支持生成 RTF(MS-Word)、PostScript、超链接 PDF、压缩 HTML、DocBook 和 Unix 手册页的输出。文档直接从源代码中提取,这使得保持文档与源代码的一致性变得更加容易。可以配置 Doxygen 从未文档化的源文件中提取代码结构。这对于在大型源代码分发中快速找到方向非常有用。Doxygen 还可以通过包含依赖图、继承图和协作图来可视化各个元素之间的关系,所有这些都会自动生成。

Doxygen是开源软件,遵循GUN开源协议,因此生成的文档是从其生产中使用的输入派生的衍生作品;他们不受此许可证的影响。

开源Github网址:GitHub - doxygen/doxygen: Official doxygen git repository

Doxygen官网:Doxygen homepage

2 Doxygen软件下载方法

软件下载网站参照官网:Doxygen download

可以在不同系统上下载不同版本安装包,默认安装即可。

3 Doxygen软件配置方法

安装后在安装目录下可以看到 doxygen\bin\doxywizard.exe 程序

点击打开后可以看到运对应的GUI界面

首先填写 Project信息

然后填写模式信息

选择输出文档模式

关于生成类图的选项

选择 Expert 可以配置更多内容,例如在input中可以追加中文源码分析,鼠标悬停在各个选项上时有更详细的解释

上述内容配置好后,可以点击file或者ctrl+s保存配置。开发上各个域或模块情况不一样,每部分作业可以按照自己的需求定制化配置进行保存,开发者导入配置文件后标准化注释后直接导出文件即可。

进入Run界面,点击Run doxygen开始生成相关文档,点击 Show HTML output,可以查看生成的文档内容

4 标准注释描述

4.1 块注释 和 特殊描述字符

 标准注释方法可以参照 官方文档中Special Commands章节

下载连接:https://www.doxygen.nl/files/doxygen_manual-1.12.0.pdf.zip

常用的commands例如

commonds

含义

brief

函数简要说明

copyright

版权所有声明

author

作者描述

data

日期描述

version

版本描述

param

参数描述

showdata

版本日期描述

return

返回值描述

note

注解提示信息

important

重要提示信息

code \endcode

示例代码

warning

警告提示信息

todo

代办事项提示信息

bug

Bug提示信息

可以描述的内容很多例如:函数、变量、类型定义、枚举、枚举值、宏定义都可以进行相关描述

4.1.1 函数描述示例

这些Special Commands 使用位置要和需要注释说明的函数放到一起,同时整体注释使用如下方式进行

/*!
* @[Special Commands]
*/

 例如:

或者

/*!
* \[Special Commands]
*/

例如:

然后使用Doxygen生成文档此部分效果如下:

如果有需要也可以更改Doxygen配置生成其他语言效果

4.1.2结构体数组变量示例

代码:

效果展示:

特别注意:

这里值得注意的是上述描述中因为有 @todo 相关描述所以最终会在生成产物中todo list中体现相关信息如下:

4.2单行注释

(PS:更详细的内容参照

https://www.doxygen.nl/files/doxygen_manual-1.12.0.pdf.zip 中 Documenting the code 章节)

可以使用 /// 或 //!   

同时也可以在注释后再使用 @[Special Commands]的方式进行额外标注

4.2.1 单个变量注释示例

对于单个变量,往往会采用单行注释方法进行描述

效果如下:

特别注意:

上述注释方法需要将注释放到变量前使用,如果想要注释放到变量后使用

可以使用如下三种方法

效果展示:

4.2.2对于枚举变量描述示例

代码:

文档生成效果:

 

4.3 markdown语法使用及效果

TODO

4.4 类图 & 流程图调用关系生成方法

TODO

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/943132.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

并发编程 - 死锁的产生、排查与解决方案

在多线程编程中,死锁是一种非常常见的问题,稍不留神可能就会产生死锁,今天就和大家分享死锁产生的原因,如何排查,以及解决办法。 线程死锁通常是因为两个或两个以上线程在资源争夺中,形成循环等待&#xf…

云轴科技ZStack获评OpenCloudOS社区2024年度优秀贡献单位

近日,由 OpenCloudOS 社区主办的 2024 OpenCloudOS 年会在北京成功召开。本次大会以“稳建基石,共创新篇”为主题,汇集了业界顶级技术专家与行业领袖,共同探讨下一代操作系统的建设与未来。云轴科技ZStack作为OpenCloudOS 社区的重…

clickhouse解决suspiciously many的异常

1. 问题背景 clickhouse安装在虚拟机上,持续写入日志时,突然关机,然后重启,会出现clickhouse可以正常启动,但是查询sql语句,提示suspiciously many异常,如图所示 2. 问题修复 touch /data/cl…

从零开始k8s-部署篇(未完待续)

从零开始k8s 1.部署k8s-部署篇 1.部署k8s-部署篇 本次部署完全学习于华子的博客点击此处进入华子主页 K8S中文官网:https://kubernetes.io/zh-cn 笔者从零开始部署的k8s,部署前置条件为 1.需要harbor仓库,存放镜像,拉取镜像&am…

Dots 常用操作

游戏中有多个蚂蚁群落,每个蚂蚁属于一个群落,如何设计数据结构? 方法1:为蚂蚁组件添加一个属性 ID,会造成逻辑中大量分支语句,如果分支语句逻辑不平衡可能带来 Job 调度问题,每个蚂蚁会有一份蚂…

如何通过 Kafka 将数据导入 Elasticsearch

作者:来自 Elastic Andre Luiz 将 Apache Kafka 与 Elasticsearch 集成的分步指南,以便使用 Python、Docker Compose 和 Kafka Connect 实现高效的数据提取、索引和可视化。 在本文中,我们将展示如何将 Apache Kafka 与 Elasticsearch 集成以…

深入浅出:AWT的基本组件及其应用

目录 前言 1. AWT简介 2. AWT基本组件 2.1 Button:按钮 2.2 Label:标签 ​编辑 2.3 TextField:文本框 2.4 Checkbox:复选框 2.5 Choice:下拉菜单 2.6 List:列表 综合案例 注意 3. AWT事件处理 …

Go Energy 跨平台框架 v2.5.1 发布

Energy 框架 是Go语言基于CEF 和 LCL 开发的跨平台 GUI 框架, 具体丰富的系统原生 UI 控件集, 丰富的 CEF 功能 API,简化且不失功能的 CEF 功能 API 使用。 特性? 特性描述跨平台支持 Windows, macOS, Linux简单Go语言的简单特性,使用简单…

JS 异步 ( 一、异步概念、Web worker 基本使用 )

文章目录 异步代码异步执行概念ES6 之前的异步 Web worker 异步 代码异步执行概念 通常代码是自上而下同步执行的,既后面的代码必须等待前面的代码执行完才会执行,而异步执行则是将主线程中的某段代码交由子线程去执行,当交给子线程后&…

机器学习(二)-简单线性回归

文章目录 1. 简单线性回归理论2. python通过简单线性回归预测房价2.1 预测数据2.2导入标准库2.3 导入数据2.4 划分数据集2.5 导入线性回归模块2.6 对测试集进行预测2.7 计算均方误差 J2.8 计算参数 w0、w12.9 可视化训练集拟合结果2.10 可视化测试集拟合结果2.11 保存模型2.12 …

Java字符串操作利器:StringBuffer与StringBuilder类详解

在处理字符串变更时,StringBuffer和StringBuilder类是优选工具。与String类不同,StringBuffer和StringBuilder允许对象被多次修改,而不会生成新的未使用对象。 StringBuilder类自Java 5起引入,其与StringBuffer的主要区别在于Stri…

软件确认测试报告的内容和作用简析

软件确认测试报告是对软件确认测试过程及结果的正式记录,是评估软件质量的重要依据。它不仅对开发团队起到反馈作用,更是决策层判断软件是否可以交付的重要参考。 一、软件确认测试报告包括的内容   1、测试目的:明确此次测试的目的和所要…

结构体(初阶)

结构体: 结构体类型的声明 结构体初始化 结构成员访问 结构体传参 1.结构体的声明 1.1结构的基础知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 1.2结构的声明 struct tag { member - list; }variable-lis…

详解VHDL如何编写Testbench

1.概述 仿真测试平台文件(Testbench)是可以用来验证所设计的硬件模型正确性的 VHDL模型,它为所测试的元件提供了激励信号,可以以波形的方式显示仿真结果或把测试结果存储到文件中。这里所说的激励信号可以直接集成在测试平台文件中,也可以从…

React 第二十节 useRef 用途使用技巧注意事项详解

简述 useRef 用于操作不需要在视图上渲染的属性数据,用于访问真实的DOM节点,或者React组件的实例对象,允许直接操作DOM元素或者是组件; 写法 const inpRef useRef(params)参数: useRef(params),接收的 …

SQL子查询和having实例

有2个表如下;一个是站点信息,一个是站点不同时间的访问量, 现在要获取总访问量大于200的网站; 先执行如下sql,不包括having子句看一下,获得的是所有站点的总访问量; 这应是一个子查询&#xf…

【seatunnel】数据同步软件安装

【seatunnel】数据同步软件安装 下载 wget https://dlcdn.apache.org/seatunnel/2.3.8/apache-seatunnel-2.3.8-bin.tar.gz wget https://dlcdn.apache.org/seatunnel/seatunnel-web/1.0.2/apache-seatunnel-web-1.0.2-bin.tar.gz1、安装seatunnel Server 解压 tar zxvf ap…

散斑/横向剪切/迈克尔逊/干涉条纹仿真技术分析

摘要 本博文提供了多种数据类型的干涉条纹仿真,并展示了它们对应的散斑干涉条纹。还分别给出了横向剪切干涉以及剪切散斑干涉条纹的仿真。 一、迈克尔逊干涉与散斑干涉仿真 下图为干涉条纹与对应的散斑干涉条纹的仿真示意图。其中,干涉条纹可认为是源…

如何通过采购管理系统实现智能化采购?

随着人工智能、大数据等技术的快速发展,采购管理逐步迈入智能化时代。智能化采购不仅提升了效率,还为企业提供了更精准的采购决策支持。本文将从智能化采购的优势出发,探讨采购管理系统如何助力企业实现这一目标。 文中用到的采购管理系统&a…

【论文阅读笔记】IC-Light

SCALING IN-THE-WILD TRAINING FOR DIFFUSION-BASED ILLUMINATION HARMONIZATION AND EDITING BY IMPOSING CONSISTENT LIGHT TRANSPORT 通过施加一致的光线传输来扩展基于扩散模型的真实场景光照协调与编辑训练 前言摘要引言相关工作基于学习的基于扩散模型的外观和光照操纵光…