【工具】这个神器可以提取你代码中的关键信息生成技术文档

一、前言

以前,我们学C语言的时候,多多少少都查过一些标准库函数吧。这里介绍查找C语言的标准库函数的两种方法:一种方法是直接到http://www.cplusplus.com这个网站上去查看:

这里覆盖了C语言标准库中的所有函数,给出了每个函数的介绍并且都给出了具体的用法示例,比如:

只不过都是英文的说明,可见英文的重要性。

另一种方法是,找一些离线的文档,网上有不少人整理了一些离线的文档,比如.chm格式(已编译的帮助文件)的文档:

里面大概是这样子的:

也可以很方便的查找每个函数的用法,但是,这里面的不是很全,所以查找C标准库函数还是建议到http://www.cplusplus.com上面去查找。

本文分享的重点就是.chm文件的制作。最近需要对自己的一些代码做一些整理,发现整理成.chm文件是个不错的选择,.chm文件可以根据我们的代码生成,下面把生成.chm文件的方法分享给大家。

二、制作.chm文件的工具

需要三个工具:doxygen安装包、graphviz安装包、htmlhelp安装包。其中doxygen是一种开源跨平台的文档系统,doxygen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。

doxygen可以生成好几种格式的文档,要生成.chm格式的手册就必须安装htmlhelp,要生成关系图必须安装依graphviz。这个个工具的获取方法:

方法一:官网下载

(1)doxygen安装包:

http://www.doxygen.nl/download.html

(2)graphviz安装包:

http://www.graphviz.org/

(3)htmlhelp安装包:

https://www.microsoft.com/en-us/download/details.aspx?id=21138

方法二:百度云盘下载

链接:https://pan.baidu.com/s/1gsJxkGsoO0ncy0GGM6PyQw
提取码:3754

下载的都是.exe格式的可执行文件,就按平时安装软件的方法安装件就可以了。但是,需要记住graphvizhtmlhelp的安装路径,后面使用Doxygen时需要用到。

三、Doxygen根据代码生成.chm的机制

Doxygen可以根据固定格式的代码注释生成相对应的.chm格式的手册。支持的语言有好多种,如C/C++/C#/Objective-C/PHP/Java等。这里主要是分享C语言,Doxygen可以识别的固定格式注释有以下几种:

这里,我使用第一种,如:

/**
 * 函数功能:字符串逆序函数
 * @param src_str:字符串
 * @param str_len:字符串长度
 * @return 逆序之后得到的字符串
 */ 
char *Str_ReverseOrder(char *src_str,int str_len)
{
    char *dst_str = src_str;
    char temp;
    printf("Method 1!\n");
    for(int i=0;i<str_len/2;i++)
    {
        temp = src_str[i];                    
        src_str[i] = src_str[str_len-i-1];  
        src_str[str_len-i-1] = temp;        
    }

    return (char*)dst_str;
}

所有的函数都使用这样统一格式的注释。

四、Doxygen生成.chm文件的方法

(1)设置工程工作目录

(2)设置编程语言

(3)设置输出文件格式

(4)设置生成的关系表

(5)输出的语言、编码

(6)设置一些构建的选择项

(7)设置输入文件的编码

(8)设置是否在.chm中生成源码以供预览

(9)设置HTML选项

(10)设置Dot选项

(11)运行生成.chm文件

(12)保存工程文件

五、最终成果效果图

下面看一下我们生成的.chm文件:


我的个人博客:https://zhengnianli.github.io/

我的微信公众号:嵌入式大杂烩


 上一篇
替代串口打印,嵌入式中另一种打印调试的方法 替代串口打印,嵌入式中另一种打印调试的方法
一、前言在我们的嵌入式开发中,常常把printf重定向到MCU的串口外设,再配合上位机界面软件,通过打印调试信息的方式来调试我们的嵌入式软件。 此处,我们介绍另一种打印调试的方法——SEGGER 的RTT 。RTT全称是Real Time
2019-08-16
下一篇 
【C语言笔记】assert怎么用? 【C语言笔记】assert怎么用?
一、什么是assert()?编写代码时,我们总是会做出一些假设,断言(assert)就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。 断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时
2019-08-12
  目录