当前位置: 首页 > news >正文

实用工具推荐----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

相关文章:

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

目录 目录 1 软件介绍 2 Doxygen软件下载方法 3 Doxygen软件配置方法 4 标准注释描述 4.1 块注释 和 特殊描述字符 4.1.1 函数描述示例 4.1.2结构体数组变量示例 特别注意: 4.2单行注释 4.2.1 单个变量注释示例 特别注意: 4.2.2对于枚举变量…...

js垃圾回收机制详细讲解

JavaScript 垃圾回收机制(Garbage Collection, GC)负责自动管理内存的分配和释放,确保程序在运行时不会因为内存泄漏而崩溃。它的主要任务是回收不再使用的内存空间,防止内存泄漏。JavaScript 的垃圾回收通常由引擎自动完成&#…...

【Linux/踩坑】Linux中启动eclipse或HDFS因JAVA_HOME设置报错

Linux中启动eclipse或hadoop因JAVA_HOME设置报错 eclipseHadoop eclipse 错误提示: A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the follo…...

百度千帆平台构建AI APP的基础概念梳理

百度千帆平台构建AI APP的基础概念梳理 如果想制作大语言模型(LLM)相关的APP, 将利用百度的千帆平台在国内可能是最便捷的途径,因为百度开发了成熟的工作流,前些年还有些不稳定,现在固定下来了&#xff0c…...

Unity3D Huatuo技术原理剖析详解

前言 在游戏开发领域,Unity3D凭借其强大的跨平台能力和丰富的功能,成为了众多开发者的首选工具。而在Unity3D的生态系统中,Huatuo作为一款重要的插件,为游戏开发带来了极大的便利。本文将深入剖析Huatuo的技术原理,并…...

记Fastjson2的一个报ConcurrentModificationException的bug

错误背景:fastjson2的parseObject方法,在spring webflux项目中被调用,有时会报java.util.ConcurrentModificationException错误。报错处的代码如下图: 改了半天与并发安全相关的代码,还是会报此错误。后来改变思路搜…...

使用TimesFM 对车辆销售进行预测

代码功能概述 导入相关包与设置环境变量: 首先导入了如 os、numpy、pandas 等常用的 Python 库,同时设置了一些与特定库(如 XLA_PYTHON_CLIENT_PREALLOCATE 和 JAX_PM AP_USE_TENSORSTORE)相关的环境变量,用于优化计算…...

OpenEuler 22.03 不依赖zookeeper安装 kafka 3.3.2集群

零:规划 本次计划安装三台OpenEuler 22.03 版本操作系统的服务器,用于搭建 kafka和flink 集群。因为从kafka 2.8 版本以后开始不依赖 zookeeper ,同时考虑到需要找一个发布时间早于 flink 1.17 的kafka 版本且应尽量稳定,综合考虑…...

ubuntu 将python3.8 升级为python3.10并进行版本切换

ubuntu 将python3.8 升级为python3.10并进行版本切换 前言将python3.8 升级为3.10安装pippython版本切换 前言 有一个功能包编译环境需要为python3.10 ,但是当前环境为python3.8 ,所以需要进行版本升级,编译完还需要把环境切换回来。 将pyt…...

3. Kafka入门—安装与基本命令

Kafka基础操作 一. 章节简介二. kafka简介三. Kafka安装1. 准备工作2. Zookeeper安装2.1 配置文件2.2 启动相关命令3. Kafka安装3.1 配置文件3.2 启动相关命令-------------------------------------------------------------------------------------------------------------…...

如何使用 python创建图片格式转换器

在本篇博客中,我们将通过一个简单的实例来展示如何使用 wxPython 创建一个图形用户界面(GUI)应用程序,用于将图片从一种格式转换为另一种格式。我们将通过以下几个步骤实现这一目标: C:\pythoncode\new\imageconvertty…...

命令行之巅:Linux Shell编程的至高艺术(上)

文章一览 前言一、shell概述1.1 shell的特点和类型1.1.1 **shell的特点:**1.1.2 常用shell类型 1.2 shell脚本的建立和执行1.2.1 建立shell脚本1.2.2 执行shell脚本的方式1.2.3 shell程序实例 二、shell变量与算数运算2.1 简单shell变量2.1.1 简单变量定义和赋值2.1…...

【gulp】gulp 的基本使用

gulp 是一个基于node的自动化打包构建工具,前端开发者可以使用它来处理常见任务: 创建项目 进入项目 npm init -ynpm i gulp -g (使用命令 gulp)npm i gulp -D # 开发依赖(前端工具都是开发依赖 本地安装 代…...

Linux 下处理 ^M 字符的最佳实践

Linux 下处理 ^M 字符的最佳实践 一、快速解决方案 按照优先级排序的三种解决方案: 1. 使用 dos2unix(推荐) # 安装 sudo apt-get install dos2unix # Ubuntu/Debian sudo yum install dos2unix # CentOS# 使用 dos2unix 文件名2. 使用 sed sed...

【优选算法】—复写零(双指针算法)

云边有个稻草人-CSDN博客 每天至少一道算法题,接着干,以额现在的实力想完成那个目标确实难。算法题确实烧脑,挺煎熬的,但脑子烧多了是不是就该好些了?。。。 记得那句话,必须有为成功付出代价的决心&#x…...

2024国赛A问题三和四

问题三 最小螺距单目标优化模型的建立 问题二考虑了在螺距固定的条件下计算舞龙队盘入的终止时间,问题三在第二问的基础提出了改变螺距的要求,即求解在螺距最小为多少时,龙头前把手能够沿着相应的螺线盘入到调头空间的边界。故可将其转换为…...

asp.net 高校学生勤工俭学系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php python(flask Django) 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找…...

《计算机组成及汇编语言原理》阅读笔记:p116-p120

《计算机组成及汇编语言原理》学习第 7 天,p116-p120 总结,总计 5 页。 一、技术总结 1.CPU优化 (1)increase overall performance number 例如:16位电脑提升到32位电脑。 (2)multiprocessing One way to make computers more useful i…...

C# OpenCvSharp DNN 卡证检测矫正

目录 说明 效果 模型 项目 代码 下载 参考 说明 源码地址:https://modelscope.cn/models/iic/cv_resnet_carddetection_scrfd34gkps 在实人认证、文档电子化等场景中需要自动化提取卡证的信息,以便进一步做录入处理。这类场景通常存在两类问题&…...

Spring Boot 中 Map 的最佳实践

在Spring Boot中使用Map时,请遵循以下最佳实践: 1.避免在Controller中 直接使用Map。应该使用RequestBody 接收-个DTO对象或者 RequestParam接收参数,然后在Service中处 理Map。 2.避免在Service中 直接使用原始的Map。应该使用Autowired 注入-个专门…...

终极指南:如何扩展Bloaty功能 - 自定义解析器和数据源开发完整教程

终极指南:如何扩展Bloaty功能 - 自定义解析器和数据源开发完整教程 【免费下载链接】bloaty Bloaty: a size profiler for binaries 项目地址: https://gitcode.com/gh_mirrors/bl/bloaty Bloaty二进制大小分析工具是一款强大的二进制文件大小分析工具&#…...

PE结构 ---> 9.RvaToFoa 内存状体到文件状态

目录 1. 为什么必须进行 RVA → FOA 转换?(核心矛盾) 2. 磁盘布局 vs 内存布局(对比详解) 3. RVA、VA、FOA 精确定义与关系 4. RvaToFoa 函数完整技术详解(核心算法) 5. 实战案例&#xff…...

HarmonyOS 6实战:HarmonyOS轻量化交互的两种方案改造与实践(上)

HarmonyOS 6实战:HarmonyOS轻量化交互的两种姿势(上篇)一、服务卡片:AI助手实现常驻系统页服务卡片改造实战踩坑记录二、实况窗:更新位置与进程服务(mock版)生命周期管理踩坑记录总结我们之前做…...

适配新的gps模块,在Android系统中注意哪些问题

首先理解Android LocationManager与GNSS硬件适配深度涵盖LocationManager功能、GNSS芯片适配接口、文件系统依赖、调试实战四大模块,“LocationManager是Android定位服务的总入口,GNSS HAL层适配,从芯片驱动到Framework层回调,完整…...

Windows 平台 Tongsuo 国密 NTLS 编译实战:从环境搭建到库文件生成

1. 环境准备:搭建Windows编译工具链 第一次在Windows上编译Tongsuo国密库的经历让我记忆犹新。当时为了赶项目进度,我连续折腾了三天才搞定整个环境。现在把这些经验整理出来,希望能帮你少走弯路。 编译Tongsuo国密库需要三个核心工具&#x…...

Picasso设计稿转代码工具全攻略:从安装到精通

Picasso设计稿转代码工具全攻略:从安装到精通 【免费下载链接】Picasso 一款UI自动生成代码插件,提供UI自动生成代码全流程解决方案。 项目地址: https://gitcode.com/gh_mirrors/picasso3/Picasso 解锁效率:Picasso的3大核心优势 当…...

基于YOLO26的人脸识别技术

基于YOLO26的人脸识别技术方案代表了边缘计算与轻量化视觉AI的前沿突破。YOLO26作为Ultralytics团队于2026年初发布的最新一代YOLO模型,通过"无NMS端到端推理+架构精简优化"的核心设计理念,实现了在CPU和边缘设备上43%的推理速度提升,同时保持了优秀的检测精度。本…...

无需配置环境,用快马平台5分钟搭建你的第一个java学生管理系统原型

最近在尝试用Java写一个简单的学生信息管理系统原型,发现用传统方式从零开始搭建实在太费时间。光是安装JDK、配置环境变量这些前置工作就能劝退不少初学者。后来发现了InsCode(快马)平台,整个过程变得异常简单,5分钟就能跑通核心流程。 项目…...

Baichuan-7B代码生成能力:编程助手的最佳选择 - 7B参数大模型的终极指南

Baichuan-7B代码生成能力:编程助手的最佳选择 - 7B参数大模型的终极指南 【免费下载链接】Baichuan-7B A large-scale 7B pretraining language model developed by BaiChuan-Inc. 项目地址: https://gitcode.com/gh_mirrors/ba/Baichuan-7B Baichuan-7B是由…...

百川2-13B+OpenClaw:学术论文参考文献自动校对系统

百川2-13BOpenClaw:学术论文参考文献自动校对系统 1. 为什么需要参考文献自动化校对 去年写博士论文时,我曾在参考文献格式上栽过跟头。距离截稿还有48小时,导师突然指出我的参考文献列表存在三处格式不一致——有的作者名全大写&#xff0…...