Doxygen的注释风格
1) 文件头(包括.h和.cpp)
主要用于声明版权,描述本文件实现的功能,以及文件版本信息等
2) 类的定义
主要用于描述该类的功能,同时也可以包含使用方法或者注意事项的简要描述
3) 类的成员变量定义
在类的成员变量上方,对该成员变量进行简要地描述
4) 类的成员函数定义
在类定义的成员函数上方,对该成员函数功能进行简要描述
5) 函数的实现在函数的实现代码处,详细描述函数的功能、参数的含义、返回值的含义、使用本函数需要注意的问题、本函数使用其他类或函数的说明等
5.2 Doxygen支持的指令
5.2.1 概述
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 概述
/** description
* description
* description
*/
5.3.2 简述与详述的方式
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 类成员变量定义示例
/** 成员变量描述 */
int m_Var;
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 概述
5.4.2 简述与详述
/// \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.
///
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 类成员变量定义示例
/// 成员变量描述
int m_Var;
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 需要注意的问题
6 Doxygen使用的常见问题小结
6.1 中文问题:中文注释在文档中是乱码
6.2 图形问题:无法绘制类图协作图等图形。
6.3 输出chm的问题:如何输出.chm文件
6.4 Doxygen无法为DLL中定义的类 导出文档
目前发现Doxygen无法识别出DLL中定义的类。
转自 http://www.cnblogs.com/vyvi/archive/2011/08/11/2134382.html