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:
5.3.2 简述与详述的方式Doxygen支持的块(类、函数、结构体等)的注释描述分为两种:简述 和 详述一般注释的描述由简述开始,经过特殊分隔方式后,后面紧跟详述的内容,javaDoc风格可以使用的分隔方法有以下两种:1) 使用 rief 参数标识,空行作为简述和详述的间隔标识
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 <name> [<header-file>] [<header-name>] 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) 使用 rief 参数标识,空行作为简述和详述的间隔标识
- /*! @brief Brief description.
- * description continued.
- *
- * Detailed description starts here.
- */
- /** Brief description
- * description continued
- *
- * Detailed description starts here.
- */
- /** Brief description
- * description continued . (注意:这里有一个小数点,加上一个空格)
- * Detailed description starts here.
- */
- //////////////////////////////////////////////////////////////////////////
- /// COPYRIGHT NOTICE
- /// Copyright (c) 2009, 华中科技大学 (版权声明)
- /// All rights reserved.
- ///
- /// @file (本文件的文件名eg:Test.h)
- /// @brief (本文件实现的功能的简述)
- ///
- ///(本文件实现的功能的详述)
- ///
- /// @version 1.1 (版本声明)
- /// @author (作者,eg:卢俊)
- /// @date (文件创建日期,eg:2009年7月15日)
- ///
- ///
- /// 修订说明:最初版本
- //////////////////////////////////////////////////////////////////////////
- /** 本类的功能:打印错误信息
- *
- * 本类是一个单件
- * 在程序中需要进行错误信息打印的地方
- */
- class CPrintError
- {
- ……
- }
- /** 成员变量描述 */
- int m_Var;
- int m_color; /**< 颜色变量 */
- /** 下面是一个含有两个参数的函数的注释说明(简述)
- *
- * 这里写该函数的详述信息
- * @param a 被测试的变量(param描述参数)
- * @param s 指向描述测试信息的字符串
- * @return 测试结果 (return描述返回值)
- * @see Test() (本函数参考其它的相关的函数,这里作一个链接)
- * @note (note描述需要注意的问题)
- */
- int testMe(int a,const char *s);
- /** 颜色的枚举定义
- *
- * 该枚举定义了系统中需要用到的颜色
- * 可以使用该枚举作为系统中颜色的标识
- */
- enum TEnum
- {
- RED, /**< 枚举,标识红色 */
- BLUE, /**< 枚举,标志蓝色 */
- YELLOW /**< 枚举,标志黄色. */
- }enumVar;