java doxygen_Doxygen 使用总结

java doxygen_Doxygen 使用总结转自 http ticktick blog 51cto com Doxygen 的注释风格 5 1 综述在每个代码项中都可以有两类描述 这两类描述将在文档中格式化在一起 一种就是 brief 描述 另一种就是 detailed 两种都是可选的 但不能同时没有 顾名思义 简述 brief 就是在一行内简述地描述 而详细描述 detaileddesc

转自:http://ticktick.blog.51cto.com//

5      Doxygen的注释风格

5.1   综述

在每个代码项中都可以有两类描述, 这两类描述将在文档中格式化在一起: 一种就是brief描述, 另一种就是detailed。 两种都是可选的,但不能同时没有。

顾名思义, 简述(brief)就是在一行内简述地描述。而详细描述(detailed description)则提供更长, 更详细的文档。

Doxygen支持c风格注释、c++风格注释以及javaDoc风格注释等,下面将分别予以介绍。

若需要通过Doxygen生成漂亮的文档,一般有如下几个地方需要使用Doxygen支持的风格进行注释:

1) 文件头(包括.h和.cpp)

主要用于声明版权,描述本文件实现的功能,以及文件版本信息等

2) 类的定义

主要用于描述该类的功能,同时也可以包含使用方法或者注意事项的简要描述

3) 类的成员变量定义

在类的成员变量上方,对该成员变量进行简要地描述

4) 类的成员函数定义

在类定义的成员函数上方,对该成员函数功能进行简要描述

5) 函数的实现在函数的实现代码处,详细描述函数的功能、参数的含义、返回值的含义、使用本函数需要注意的问题、本函数使用其他类或函数的说明等

5.2    Doxygen支持的指令

5.2.1   概述

可以在注释中加一些Doxygen支持的指令,主要作用是控制输出文档的排版格式,使用这些指令时需要在前面加上“\”或者“@”(JavaDoc风格)符号,告诉Doxygen这些是一些特殊的指令,通过加入这些指令以及配备相应的文字,可以生成更加丰富的文档,下面对比较常用的指令做一下简单介绍。

5.2.2   常用指令介绍

@file

档案的批注说明。

@author

作者的信息

@brief

用于class 或function的简易说明

eg:

@brief本函数负责打印错误信息串

@param

主要用于函数说明中,后面接参数的名字,然后再接关于该参数的说明

@return

描述该函数的返回值情况

eg:

@return 本函数返回执行结果,若成功则返回TRUE,否则返回FLASE

@retval

描述返回值类型

eg:

@retval NULL空字符串。

@retval !NULL非空字符串。

@note

注解

@attention

注意

@warning

警告信息

@enum

引用了某个枚举,Doxygen会在该枚举处产生一个链接

eg:

@enum CTest::MyEnum

@var

引用了某个变量,Doxygen会在该枚举处产生一个链接

eg:

@var CTest::m_FileKey

@class

引用某个类,

格式:@class [] []

eg:

@class CTest “inc/class.h”

@exception

可能产生的异常描述

eg:

@exception 本函数执行可能会产生超出范围的异常

5.3      JavaDoc风格的注释

5.3.1    概述

JavaDoc风格的注释风格主要使用下面这种样式:即在注释块开始使用两个星号‘*‘

/   description

*    description

*    description

*/

5.3.2    简述与详述的方式

Doxygen支持的块(类、函数、结构体等)的注释描述分为两种:简述 和 详述

一般注释的描述由简述开始,经过特殊分隔方式后,后面紧跟详述的内容,javaDoc风格可以使用的分隔方法有以下两种:

1)       使用 \brief 参数标识,空行作为简述和详述的间隔标识

/*!    @brief  Brief description.

*    description continued.

*

*    Detailed description starts here.

*/

2) 直接使用javaDoc风格,javaDoc风格自动以简述开头,以空行(或者小数点加空格)作为简述与详述的分割

/    Brief description

*    description continued

*

*    Detailed description starts here.

*/

/        Brief description

*         description continued . (注意:这里有一个小数点,加上一个空格)

*         Detailed description starts here.

*/

5.3.3   文件头注释示例

5.3.4   类定义注释示例

/    本类的功能:打印错误信息

*

*     本类是一个单件

*     在程序中需要进行错误信息打印的地方

*/

class CPrintError

{

……

}

5.3.5   类成员变量定义示例

(1)在成员变量上面加注释的格式

/ 成员变量描述 */

int  m_Var;

(2)在成员变量后面加注释的格式int  m_color;     /

5.3.6   成员函数的注释示例

/ 下面是一个含有两个参数的函数的注释说明(简述)

*

*     这里写该函数的详述信息

*     @param a 被测试的变量(param描述参数)

*     @param s 指向描述测试信息的字符串

*     @return    测试结果 (return描述返回值)

*     @see    Test()    (本函数参考其它的相关的函数,这里作一个链接)

*     @note    (note描述需要注意的问题)

*/

int testMe(int a,const char *s);

5.3.7     枚举变量的注释示例

/    颜色的枚举定义

*

*    该枚举定义了系统中需要用到的颜色\n

*    可以使用该枚举作为系统中颜色的标识

*/

enum TEnum

{

RED,           /

BLUE,          /

YELLOW         /

}enumVar;

5.4      C++风格的注释

5.4.1    概述

C++的注释风格主要使用下面这种样式:即在注释块开始使用三个反斜杠‘/’

其他地方其实与JavaDoc的风格类似,只是C++风格不用 “*” 罢了。

5.4.2       简述与详述

C++风格的简述与详述方式与javaDoc类似。

一般注释的描述由简述开始,经过特殊分隔方式后,后面紧跟详述的内容,C++风格可以使用的分隔方法有以下两种:

(1)使用 \brief 参数标识,空行作为简述和详述的间隔标识

///    \brief  Brief description.

///    description continued.

///

///    Detailed description starts here.

///

(2) 使用以空行(或者小数点加空格)作为简述与详述的分割

///   Brief description

///   description continued.

///

///   Detailed description starts here.

以小数点加空格作为分隔如下:

///         Brief description

///         description continued . (注意:这里有一个小数点,加上一个空格)

///         Detailed description starts here.

///

5.4.3    注释风格约定

1. 一个代码块(类、函数、结构等)的概述采用单行的”///”加一个空格开头的注释,并写在该代码块声明的前面;

2. 一个代码块的详述采用至少两行的”///”加一个空格开头的注释,若不足两行第二行的开头也要写出来,并且放在代码块定义的前面;如果某代码没有声明只有定义或者相反,则在定义或者声明前面写上单行的概述+一个空行+多行的详述;

3. 枚举值列表的各项、结构域的各项等采用在本行最后添加”///

4. 对变量的定义采用在变量上面加单行”///”加一个空格开头的注释(相当于是给改变量一个概述);

5. 函数的参数用”/// @param”+一个空格开头的行描述在函数的详述里面;

6. 函数的返回值用”/// @return”+一个空格开头的行描述在函数的详述里面;

7. 函数之间的参考用”/// @see”+一个空格开头的行描述在函数的详述里面;

8. 文件头的版权以及文件描述的注释参见例代码。

5.4.4       文件头注释示例

5.4.5       类定义注释示例

///    本类的功能:打印错误信息

///

///    本类是一个单件

///    在程序中需要进行错误信息打印的地方

class CPrintError

{

……

}

5.4.6       类成员变量定义示例

(1)在成员变量上面加注释的格式

/// 成员变量描述

int  m_Var;

(2)在成员变量后面加注释的格式int  m_color;     /// 颜色变量

5.4.7       成员函数的注释示例

/// 下面是一个含有两个参数的函数的注释说明(简述)

///

///     这里写该函数的详述信息

///     @param a 被测试的变量(param描述参数)

///     @param s 指向描述测试信息的字符串

///     @return    测试结果 (return描述返回值)

///     @see    Test()    (本函数参考其它的相关的函数,这里作一个链接)

///     @note    (note描述需要注意的问题)

int testMe(int a,const char *s);

5.4.8       枚举变量的注释示例

///    颜色的枚举定义

///

///    该枚举定义了系统中需要用到的颜色\n

///    可以使用该枚举作为系统中颜色的标识

enum TEnum

{

RED,            ///

BLUE,           ///

YELLOW          ///

}enumVar;

5.5     需要注意的问题

(1)Doxygen会忽略你在注释中加入的多余的换行,如果你希望保留两行注释之间的空行,那么,在该行加入\n

6      Doxygen使用的常见问题小结

6.1     中文问题:中文注释在文档中是乱码

解决:在expert中的INPUT选项页的INPUT_ENCODEING中填入“GB2312”,这样基于GB的文本编辑器生成的代码就可以正常使用了。

6.2    图形问题:无法绘制类图协作图等图形。

解决:首先确保安装了graphviz for win,注意不是wingraphviz,后者是一个graphviz的com封装,但是doxygen并不是基于它开发的,所以装了也没用。然后在expert的DOT_PATH中填入graphviz的安装路径。接着在wizard的diagram中选择需要生成的图形类别就可以了。

如果出现无法包含.map文件的错误,可以将工作目录设置成html,并将html中所有文件都清除再试。这个问题的原因还不太确定。

6.3    输出chm的问题:如何输出.chm文件

配置时注意expert中的HTML页:选中“GENERATE_HTMLHELP”,然后在CHM_FILE中填上想要的chm文件名。

HHC_LOCATION中输入hhc.exe文件的路径。hhc.exe可以通过安装HTML Help Workshop获得。

或者使用HTML Help Workshop来编译Doxygen生成的html文件夹中的.hhp文件,编译完成后即可在该html文件夹中找到对应的chm文件

6.4     Doxygen无法为DLL中定义的类 导出文档

例如:

class __declspec(dllexport) CClassName:public CObject

{

}

目前发现Doxygen无法识别出DLL中定义的类。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226487.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:47
下一篇 2026年3月16日 下午10:47


相关推荐

  • chmod的用法_group用法与语法

    chmod的用法_group用法与语法介绍Linux中的Chmod命令用于更改或分配文件和目录的权限。在Linux/Unix系统中,文件和目录的可访问性是由文件所有权和权限决定的。在上一篇文章中,我们了解了如何使用chown命令管理文件和目录的所有权。在本教程中,我们将介绍chmod命令。chmod命令(changemode的缩写)用于管理文件和目录权限,并确定谁可以访问它们。现在让我们深入了解文件和目录权限的本质,以及如何修改它们。Linux权限文件和目录可以属于文件(u),组(g)或其他(o)的所有者u-所有人的权限g

    2022年10月20日
    4
  • java女人_Java是一个事业成功的女人

    java女人_Java是一个事业成功的女人原标题:Java是一个事业成功的女人文/北京达内教育(微信号:bjtedu01)关注后免费可获得达内5天训练营,都是干货哦~Java是一个事业成功的女人。很多在她手下干过的人都感觉她的能力跟她的地位并不般配,她更多的是通过技巧打动了中层管理人员。你也许会认为她是很有智慧的人,你愿意跟随她。但你要准备好在数年里不断的听到“你用错了接口,你遗漏了一个分号”这样的责备。C++是Java的表姐。她在…

    2022年7月7日
    27
  • 程序员可接私活的10个平台和一些建议,别掉坑里!

    程序员可接私活的10个平台和一些建议,别掉坑里!点击上方 码农突围 马上关注 每天上午 8 50 准时推送这里是码农充电第一站 回复 666 获取一份专属大礼包真爱 请设置 星标 或点个 在看 作者 程序员新视界来源

    2026年3月18日
    2
  • oracle dml语句_oracle数据库导入dmp语句

    oracle dml语句_oracle数据库导入dmp语句/*DML语句对表中数据做增删改1.插入数据1)insertinto表名values(….)2)insertinto(字段…)values(…)3)创建表的同时拷贝表的数据createtableempasselect*fromscott…

    2022年10月21日
    5
  • oracle教程15 PlSql入门和基本用法举例(很齐全)

    oracle教程15 PlSql入门和基本用法举例(很齐全)无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。PLSQL的简介PLSQL的语法结构例子:SETSERVEROUTPUTONBEGIN –打印输出DBMS_OUTPUT.PUT_LINE(‘hel…

    2022年6月5日
    219
  • 【ProseMirror学习笔记 3 】—— schema

    【ProseMirror学习笔记 3 】—— schemaschemaschema介绍nodetypesContentExpressionstodogroupMarksAttributesSerializationandParsing   schema介绍每个Prosemirrordocument都有一个与之相关的schema.这个schema描述了document中的的nodes类型,和nodes们的嵌套关系.例如,schema可以规定,顶级节点可以包含一个或者更多的blo

    2025年11月1日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号