下载国外的源代码,往往能看到附带的说明文档,文档都有详细的说明,大部分文档都可以通过doxygen这个跨平台软件生成,doxygen并不能随便读取你的C++的注释,必须按照一定的规则才能生成,所以在编写代码时,一定要按照标准写注释,否则会为以后带来许多麻烦
下面介绍C++的标注写法,c++不推荐c语言式的/* */风格注释,这里,除了文件头使用这种注释外其余到使用C++风格的注释。
先看看总述:
/*! * \file Ctext.h * \brief 概述 * *详细概述 * * \author 作者名字 * \version 版本号(maj.min,主版本.分版本格式) * \date 日期 */
/// \brief 命名空间的简单概述 /// ///命名空间的详细概述 namespace text { …… }
/// \brief Ctext的doxygen测试 /// /// 作doxygen测试用 class Ctext { }
/// \brief 函数简要说明-测试函数 /// \param n1 参数1 /// \param c2 参数2 /// \return 返回说明 bool text(int n1,Ctext c2);方法2:
/// \brief 函数简要说明-测试函数 /// /// 函数详细说明,这里写函数的详细说明信息,说明可以换行 /// ,如这里所示,同时需要注意的是详细说明和简要说明之间必须空一行 /// ,详细说明之前不需要任何标识符 /// \param n1 参数1说明 /// \param c2 参数2说明 /// \return 返回说明 /// \see text bool text2(int n1,Ctext c2);
int m_a; ///< 成员变量1m_a说明 double m_b; ///< 成员变量2m_b说明 /// \brief 成员变量m_c简要说明 /// /// 成员变量m_c的详细说明,这里可以对变量进行 ///详细的说明和描述,具体方法和函数的标注是一样的 float m_c; /// \brief xxx枚举变量的简要说明 /// /// xxx枚举变量的详细说明--枚举变量的详细说明和函数的详细说明 ///的写法是一致的。每个枚举变量下可以进行单独说明 enum{ em_1,///< 枚举值1的说明 em_2,///< 枚举值2的说明 em_3 ///< 枚举值3的说明 };
/*! * \file Ctext.h * \brief 概述 * *详细概述 * * \author 作者,包含email等 * \version 版本号(maj.min,主版本.分版本格式) * \date 日期 */
/*! \file Ctext.h \brief 概述 详细概述 \author 作者,包含email等 \version 版本号(maj.min,主版本.分版本格式) \date 日期 */
命名空间说明如下写
/// \brief 命名空间的简单概述 /// ///命名空间的详细概述 namespace text { }
/// \brief /// ///
/// \brief Ctext的doxygen测试 /// /// 作doxygen测试用 class Ctext { }
函数详细注释位于头文件,cpp文件只对函数做简明注释
cpp文件不做///的注释,否则会和头文件重叠
/// \brief 函数简要说明-测试函数 /// \param n1 参数1 /// \param c2 参数2 /// \return 返回说明 bool text(int n1,Ctext c2);
/// \brief 函数简要说明-测试函数 /// /// 函数详细说明,这里写函数的详细说明信息,说明可以换行 /// ,如这里所示,同时需要注意的是详细说明和简要说明之间必须空一行 /// ,详细说明之前不需要任何标识符 /// \param n1 参数1说明 /// \param c2 参数2说明 /// \return 返回说明 bool text2(int n1,Ctext c2);
/// 函数说明-测试函数 /// /// 函数详细说明,这里写函数的详细说明信息,说明可以换行 /// ,如这里所示,同时需要注意的是详细说明和简要说明之间必须空一行 /// ,详细说明之前不需要任何标识符 /// \param n1 参数1说明 /// \param c2 参数2说明 /// \return 返回说明 bool text3(int n1,Ctext c2);
/// \brief 函数说明-测试函数4 /// \param n1 参数1说明 /// \param c2 参数2说明 /// \return 返回说明 /// \see text3 text2 text bool text4(int n1,Ctext c2);
int m_a; ///< 成员变量1m_a说明 double m_b; ///< 成员变量2m_b说明 /// \brief 成员变量m_c简要说明 /// /// 成员变量m_c的详细说明,这里可以对变量进行 ///详细的说明和描述,具体方法和函数的标注是一样的 float m_c;
/// \brief xxx枚举变量的简要说明 /// /// xxx枚举变量的详细说明--枚举变量的详细说明和函数的详细说明 ///的写法是一致的。每个枚举变量下可以进行单独说明 enum{ em_1,///< 枚举值1的说明 em_2,///< 枚举值2的说明 em_3 ///< 枚举值3的说明 };
另外Project项目的生成语言(OUTPUT_LANGUAGE)选择Chinese
vs2010 等编译器并不能像Qt Creator那样生成上述标注样式,但是可以集成到vs的工具栏里,集成方法如下图所示:
这样在标注时可以直接从工具箱拖曳了,非常方便
/*! * \file Ctext.h * \brief 概述 * *详细概述 * * \author 作者,包含email等 * \version 版本号(maj.min,主版本.分版本格式) * \date 日期 */ #pragma once /// \brief 命名空间的简单概述 /// ///命名空间的详细概述 namespace text { } /// \brief Ctext的doxygen测试 /// /// 作doxygen测试用 class Ctext { public: Ctext(void); ~Ctext(void); /// \brief 函数简要说明-测试函数 /// \param n1 参数1说明 /// \param c2 参数2说明 /// \return 返回说明 bool text(int n1,Ctext c2); /// \brief 函数简要说明-测试函数 /// /// 函数详细说明,这里写函数的详细说明信息,说明可以换行 /// ,如这里所示,同时需要注意的是详细说明和简要说明之间必须空一行 /// ,详细说明之前不需要任何标识符 /// \param n1 参数1说明 /// \param c2 参数2说明 /// \return 返回说明 bool text2(int n1,Ctext c2); /// 函数说明-测试函数 /// /// 函数详细说明,这里写函数的详细说明信息,说明可以换行 /// ,如这里所示,同时需要注意的是详细说明和简要说明之间必须空一行 /// ,详细说明之前不需要任何标识符 /// \param n1 参数1说明 /// \param c2 参数2说明 /// \return 返回说明 bool text3(int n1,Ctext c2); /// \brief 函数说明-测试函数4 /// \param n1 参数1说明 /// \param c2 参数2说明 /// \return 返回说明 /// \see text3 text2 text bool text4(int n1,Ctext c2); int m_a; ///< 成员变量1m_a说明 double m_b; ///< 成员变量2m_b说明 /// \brief 成员变量m_c简要说明 /// /// 成员变量m_c的详细说明,这里可以对变量进行 ///详细的说明和描述,具体方法和函数的标注是一样的 float m_c; /// \brief xxx枚举变量的简要说明 /// /// xxx枚举变量的详细说明--枚举变量的详细说明和函数的详细说明 ///的写法是一致的。每个枚举变量下可以进行单独说明 enum{ em_1,///< 枚举值1的说明 em_2,///< 枚举值2的说明 em_3 ///< 枚举值3的说明 }; };
另外可看看这篇文章里面的注释:http://blog.csdn.net/czyt1988/article/details/21743595