Doxygen代码文档生成工具

文章目录

  • Doxygen代码文档生成工具
    • Doxygen
      • Doxygen的注释
      • vscode插件
      • Doxygen实际使用

Doxygen

根据百度百科说法,Doxygen是一种开源的,跨平台的文档系统,支持C、C++、Java、Objective-C语言,可以生成在线的HTML参考手册或者离线的Latex、RTF参考手册

Doxygen是一种程序的文件产生工具,可以将程序中特定的注释转换成为说明文件。

  • 可以对未归档的源文件,可以通过配置Doxygen来提取代码结构

  • 可以生成依赖图

  • 可以生成继承图,协作图等

Doxygen的注释

代码的注释规则如下

模块对外的接口,仅在.h中提供注释信息
模块内部的辅助函数,或者私有的函数,仅在.c中保留注释信息

函数的注释一般有

  • 函数功能
  • 入口参数
  • 返回值
  • 注意事项
  • 上下文

Doxygen是如何区分普通注释与输出注释的

对于C,C++注释一般有两种

//

/**/

Doxygen通过在里面加入*,/,!作为特殊标记

/** 正常注释*/

Doxygen在注释第一个*后,设置*!作为标志,如果检测到有这些,
就将接下来的注释作为导出文档来解释

同时,中间的*号可以省略,像这样

/**要输出成文档的注释*/或者/*!要输出成文档的注释*/

Doxygen如何从特殊注释中提取信息

Doxygen采用\@作为特殊标记符,当在特殊注释里面检测到了特殊标记符,则接下来检测紧跟单词是不是Doxygen事先规定好的,如果是,则将按照特定的规则来解释紧跟着的注释;如果不是呢,则将\@解释为普通文本,

是否是事先规定可以查看Doxygen官网文档

vscode插件

Doxygen Documentation Generator

vscode中可以利用插件快速生成doxygen注释

vscode中用户seting.json插件设置如下

{"window.zoomLevel": 0,"editor.minimap.enabled": false,"python.pythonPath": "C:\\Users\\jordan\\AppData\\Local\\Programs\\Python\\Python37\\python.exe","workbench.iconTheme": "vscode-icons","explorer.autoReveal": false,   //取消左侧自动聚焦"terminal.integrated.shell.windows": "D:\\Program Files\\Git\\bin\\bash.exe","terminal.external.windowsExec": "D:\\Program Files\\Git\\bin\\bash.exe","todo-tree.highlights.enabled": true,// Doxygen documentation generator set"doxdocgen.file.copyrightTag": ["@copyright Copyright (c) {year}  XX通信公司"],"doxdocgen.file.customTag": ["@par 修改日志:","<table>","<tr><th>Date       <th>Version <th>Author  <th>Description","<tr><td>{date} <td>1.0     <td>wangh     <td>内容","</table>",],"doxdocgen.file.fileOrder": ["file","brief","author","version","date","empty","copyright","empty","custom"],"doxdocgen.file.fileTemplate": "@file {name}","doxdocgen.file.versionTag": "@version 1.0","doxdocgen.generic.authorEmail": "wanghuan3037@fiberhome.com","doxdocgen.generic.authorName": "wangh","doxdocgen.generic.authorTag": "@author {author} ({email})","doxdocgen.generic.order": ["brief","tparam","param","return"],"doxdocgen.generic.paramTemplate": "@param{indent:8}{param}{indent:25}My Param doc","doxdocgen.generic.returnTemplate": "@return {type} ","doxdocgen.generic.splitCasingSmartText": true,
}
{// Doxygen documentation generator set// 文件注释:版权信息模板"doxdocgen.file.copyrightTag": ["@copyright Copyright (c) {year}  XX通信公司"],// 文件注释:自定义模块,这里我添加一个修改日志"doxdocgen.file.customTag": ["@par 修改日志:","<table>","<tr><th>Date       <th>Version <th>Author  <th>Description","<tr><td>{date} <td>1.0     <td>wangh     <td>内容","</table>",],// 文件注释的组成及其排序"doxdocgen.file.fileOrder": ["file",       // @file"brief", // @brief 简介"author",    // 作者"version",   // 版本"date",      // 日期"empty", // 空行"copyright",// 版权"empty","custom"    // 自定义],// 下面时设置上面标签tag的具体信息"doxdocgen.file.fileTemplate": "@file {name}","doxdocgen.file.versionTag": "@version 1.0","doxdocgen.generic.authorEmail": "wanghuan3037@fiberhome.com","doxdocgen.generic.authorName": "wangh","doxdocgen.generic.authorTag": "@author {author} ({email})",// 日期格式与模板"doxdocgen.generic.dateFormat": "YYYY-MM-DD","doxdocgen.generic.dateTemplate": "@date {date}",// 根据自动生成的注释模板(目前主要体现在函数注释上)"doxdocgen.generic.order": ["brief","tparam","param","return"],"doxdocgen.generic.paramTemplate": "@param{indent:8}{param}{indent:25}My Param doc","doxdocgen.generic.returnTemplate": "@return {type} ","doxdocgen.generic.splitCasingSmartText": true,
}

在函数前面输入/**回车以后

/*** @brief * @param  data             My Param doc* @param  left_1           My Param doc* @param  right_1          My Param doc* @param  left_2           My Param doc* @param  right_2          My Param doc*/
void merge(vector<int>& data, int left_1, int right_1, int left_2,int right_2)

之后可以使用Doxygen生成文档

Doxygen实际使用

本人习惯使用Doxygen的可视化工具,具体教程为

link

类图如下

Doxygen文档生成工具相关推荐

  1. Doxygen自动文档生成工具在Eclipse中的集成及使用举例

    你有为软件编写说明文档的苦恼吗?当别人甩给你一个庞大的系统,让你根据里面的代码注释理解后写出一份完整的开发文档,你会怎么办?一个个的看代码 然后耗时N天来写吗?这既是一份苦差事也极其耗时,有没有更好的 ...

  2. 一款常用文档生成工具:Doxygen

    关注+星标公众号,不错过精彩内容 来源 | 简书 编排 | strongerHuang 程序员的很多文档,特别是有代码的文档,绝大部分都是由一款文档生成工具[Doxygen]生成. 什么是Doxyge ...

  3. 文档生成工具-Doxygen使用方法以及注释规则

    最近接触了一款程序 文档生成工具-Doxygen.在网上一搜索原来这么多人知道,打算把它的使用做一个总结,以及其注释的规则. 概述: Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文 ...

  4. python doc_Python文档生成工具pydoc使用介绍

    在Python中有很多很好的工具来生成字符串文档(docstring),比如说: epydoc.doxygen.sphinx,但始终觉得pydoc还是不错的工具,用法非常简单,功能也算不错,本文主要介 ...

  5. Apiggs —— 非侵入性的 RestDoc 文档生成工具

    程序员一直以来都有一个烦恼,只想写代码,不想写文档.代码就表达了我的思想和灵魂. Python提出了一个方案,叫docstring,来试图解决这个问题.即编写代码,同时也能写出文档,保持代码和文档的一 ...

  6. .NET平台开源项目速览(4).NET文档生成工具ADB及使用

    .NET平台开源项目速览(4).NET文档生成工具ADB及使用 原文:.NET平台开源项目速览(4).NET文档生成工具ADB及使用 很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习 ...

  7. unity mysql生成cexcel_【C#附源码】数据库文档生成工具支持(Excel+Html)

    [2015] 很多时候,我们在生成数据库文档时,使用某些工具,可效果总不理想,不是内容不详细,就是表现效果一般般.很多还是word.html的.看着真是别扭.本人习惯用Excel,所以闲暇时,就简单的 ...

  8. java 接口文档工具_一款Java基于注释的接口文档生成工具

    一. 痛点 你还在手动维护接口文档嘛,花一个下午不停的复制粘贴代码里面的注释 接口字段变动,还得去更新文档,更新不及时导致文档不同步 或者你使用了swagger之类的基于注解,依靠运行时的文档工具,看 ...

  9. 数据库文档生成工具V1.0

    这是一款基于C#开发语言编写的数据库文档生成工具,主要实现了 SQlServer+MYsql 数据库表结构说明文档的生成,并且支持 SQLServer 数据库的备份功能,主要可以把数据库的表以及表的详 ...

最新文章

  1. android列表集合点击事件,给ListeView列表中的每一个Item添加点击事件
  2. 使用STM32CubeMX求得CPU芯片温度
  3. DCASE三次挑战赛概览
  4. 使用jQuery Treeview插件实现树状结构效果
  5. jboss4。0下mysql数据源的配置
  6. linux 进程 读写锁,linux 下实现高性能读写锁(read/write lock)
  7. 用 Python 下载抖音无水印视频
  8. 塞内卡学院实现开源的价值
  9. 027_编写MapReduce的模板类Mapper、Reducer和Driver
  10. 将网页和文档的背景改为绿色来保护眼睛
  11. 《人月神话》学习指南
  12. 华为悦盒EC6109u线刷救砖文件fastboot.bin bootargs.bin recovery
  13. cmd命令查询电脑序列号_如何在Windows10中查找计算机序列号/主板型号
  14. android微信网页视频播放器,关于微信使用内置播放器播放视频的办法
  15. mysql创建视图演示_mysql怎么创建视图?(图文+视频)
  16. android 取消root,彻底告别安卓刷机时代!360超级ROOT正式宣布下线:取消ROOT权限
  17. CROSSFORMER: A VERSATILE VISION TRANSFORMER BASED ON CROSS-SCALE ATTENTION
  18. 智能手环开发之 实现蓝牙(BLE)基本功能
  19. (C语言)实现基于PHP的某公司自来水收费管理系统
  20. 如何用计算机打出下划线,电脑下划线怎么打?下划线怎么输入出来

热门文章

  1. 如果快速有效的开项目启动会?
  2. 资料员培训建筑八大员培训建筑资料员工程建筑资料与施工管理
  3. 使用iconfont阿里巴巴矢量图标库(最方便的使用方法)
  4. emWin中文字库显示详细教程(简单直接)
  5. c语言段页式存储地址转换,页式存储和段页式存储的地址转换过程
  6. 计算机激光鼠标,光电鼠标和激光鼠标的区别 选择一款你喜欢的【图文】
  7. SCARA四轴机器人丝杆花键_scara机器人专用丝杆花键BNA1616螺母旋转式滚珠丝杆,ZCIV滚珠丝杆花键副...
  8. C++手敲灰度图均值滤波中值滤波高斯滤波
  9. web前端css之盒子模型,浮动,定位
  10. cmd执行bat结果不回显_让bat批处理后台运行,不显示cmd窗口(完全静化)