doxygen注释语法3

合集下载

doxygen注释规则

doxygen注释规则

Doxygen注释规则1. 简介Doxygen是一种文档生成工具,能从源代码中提取结构、关系等信息,并生成API文档。

Doxygen可以对C、C++、Java、Python等语言的代码进行注释,帮助开发者理解复杂的代码结构和函数之间的关系。

本文档将详细介绍Doxygen的注释规则,以帮助开发者更有效的使用该工具。

2. 文件注释Doxygen支持在每个源文件中添加一个全局的文件注释。

这个注释会被Doxygen用来生成目录页。

格式如下:/*** @file example.cpp* @brief Example description* @author Your Name* @date Date of creation* @version V1.0* @brief This is a brief description of the file.*/3. 类和结构体注释对于类和结构体,Doxygen需要使用`@class`或`@struct`命令。

同时,也需要提供类的简短描述和详细描述。

格式如下:/*** @class MyClass* @brief A brief description of MyClass.* Detailed description...*/4. 类成员变量和函数注释对于类的成员变量和函数,Doxygen使用`@var`、`@member`、`@param`、`@return`等命令。

这些命令后面都需要接上描述信息。

格式如下:/*** @var int myVar This is a variable description.* @member void MyClass::myFunction() This is a function description.* @param int x This is a parameter description.* @return int This is a return value description.*/5. 特殊注释标签Doxygen还提供了一些特殊的注释标签,如`@todo`、`@bug`、`@deprecated`等,用于标记代码的特殊状态。

例子注释建议遵守Doxygen规范

例子注释建议遵守Doxygen规范

例子注释建议遵守Doxygen规范主要用到的Doxygen一些编码规范:1.ANSI standard data types defined in the ANSI C header file <stdint.h> are used. Doxygend编码规范stdint.h中,常用的数据类型如下:typedef signed char int8_t;typedef signed short int int16_t;typedef signed int int32_t;typedef signed __int64 int64_t;typedef unsigned char uint8_t;typedef unsigned short int uint16_t;typedef unsigned int uint32_t;typedef unsigned __int64 uint64_t;2.#define constants that include expressions must be enclosed by parenthesis.例如:/** SSP data size select, must be 4 bits to 16 bits */#define SSP_CR0_DSS(n) ((uint32_t)((n-1)&0xF))3.推荐使用Doxygen commentsDoxygen comments 格式有多种,推荐使用以下方式•1) 代码块以及函数注释Function Comments provide for each function the following information:•brief function overview.•detailed parameter explanation•detailed information about return valuesDoxygen Example/************************************************************** ***********//*** @brief Send a block of data via SPI* @param[in] wbuf Pointer to Transmit buffer* @param[in] rlen Length of Transmit buffer* @return Number of data sent*************************************************************** **************/•2) 对于宏定义和结构成员的注释如果注释和定义在同一行,用 /*!< xxxx */int var; /*!< Detailed description after the member */ 如果不在同一行,用/** xxx *//** EXTI Event Mode Definition */typedef enum {COX_EXTI_NONE = 0, /*!< None interrupt */COX_EXTI_EDGE_RISING = 1, /*!< Rising edge interrupt */COX_EXTI_EDGE_FALLING = 2, /*!< Falling edge interrupt */COX_EXTI_EDGE_RISING_FALLING = 3, /*!< Both edge interrupt (Rising and Falling) */COX_EXTI_LEVEL_HIGH = 4, /*!< Hign Level interrupt */COX_EXTI_LEVEL_LOW = 5, /*!< Low Level interrupt */} EXTI_EVENT_Def;•3) 如果宏定义和结构定义前面需要加注释则如上,加两个"**"释/** EXTI Event Mode Definition */•4) 程序内部的注释可以不用严格参考Doxygen comments•5) 一般要加注释的地方•文件头注释•宏定义注释•全局变量注释•结构体以及内部成员的注释•各个函数注释4.为保持对齐建议行前缩进为一个TAB(TAB键值为4)5.编译结果建议达到没有waring的标准6.代码尽量保持干净,整齐。

doxygen格式进行函数注释的格式

doxygen格式进行函数注释的格式

doxygen格式进行函数注释的格式一、引言在软件开发过程中,良好的代码注释是非常重要的,它能够帮助开发者理解代码逻辑、提高代码可读性,并方便后续的维护和修改。

而d o xy ge n是一种用于生成软件文档的工具,它支持多种编程语言,并且提供了一套注释格式规范,能够方便地生成代码文档。

二、什么是d o x y g e nd o xy ge n是一款开源的软件文档生成工具,它支持C、C++、J av a等多种编程语言,能够根据代码中的注释生成详细的文档内容。

通过d o xy ge n生成的文档,可以包含函数、类、结构体的详细说明,以及函数的参数、返回值等相关信息。

三、函数注释的格式在d ox yg en中,函数注释的格式规范是非常重要的,它能够决定最终生成的文档内容的结构和格式。

下面是一些常用的函数注释格式:1.函数说明/***@br ie f函数功能说明*@pa ra m参数1参数1的说明*@pa ra m参数2参数2的说明*@re tu rn返回值的说明*/在函数注释的第一行可以使用`@br ie f`标签来说明函数的功能,后续可以使用`@pa ra m`标签来说明函数的参数,使用`@re tu rn`标签来说明函数的返回值。

2.参数说明/***@pa ra m参数1参数1的说明*@pa ra m参数2参数2的说明*/在函数注释中,使用`@pa ra m`标签来说明函数的参数,可以对每个参数进行详细的说明。

3.返回值说明/***@re tu rn返回值的说明*/使用`@re tu rn`标签来说明函数的返回值,可以对返回值的含义进行说明。

四、示例下面是一个示例函数的注释格式:/***@br ie f计算两个整数的和*@pa ra ma第一个整数*@pa ra mb第二个整数*@re tu rn两个整数的和*/i n ta dd(i nt a,in tb){r e tu rn a+b;}通过以上的注释格式,我们在生成文档时就能够清晰地了解函数的功能、参数和返回值。

doxygen注释详解-附有生成文档的对照

doxygen注释详解-附有生成文档的对照

retval指令操作符讲解
retval:指定函数返回值说明指令操作符。(注:更前面的return有点不同.这里是返回值说明) retval格式如下: @retval 返回值 简要说明 例:
/** *文件关闭函数 * @param file文件编号。 * @retval 0 表示成功 * @retval -1 表示失败 */ int CloseFile(int file);
专家(Expert)模式

专家(Expert)对话框----Input相关选项
指定输入源文件目录(INPUT). 输入文件编码(INPUT_ENCODING)改 为GBK.
对文件过滤选项,我们这里只填*.c *.h.
专家(Expert)模式

专家(Expert)对话框----Messages相关选项
note 指令操作符讲解
note:指定函数注意项事或重要的注解指令操作符。
note格式如下: @note 简要说明
例: /** *打开文件函数 *@Param [in] name 文件名 *@Param [in] “rb” 打开模式 *@return 返回文件编号 *- -1表示打开文件失败 *@note 文件打开成功后,必须使用 CloseFile 函数关闭 */ int OpenFile(U8* file_name, U8* file_mode);
Doxygen详解 目录

使用Doxygen的目的. 安装Doxygen所需工具. 配置Doxygen Doxygen注释风格
使用Doxygen的目的
生成模块文档,方便以后维护模块代码。 提高代码可读性。 提高项目代码的管理。 省略了自己写readme文件(或文档)。

doxygen常用注释语法

doxygen常用注释语法

2.常用注释语法注释写在对应的函数或变量前面。

简要注释和详细注释:/*** @brief Brief Description.** Detailed Description*/简要注释遇到一个空行或新的命令会结束,后面的就表示是详细注释。

JavaDoc风格下,自动会把第一个句号前的文本作为简要注释,后面的为详细注释。

你也可以用空行把简要注释和详细注释分开。

注意要设置JAVADOC_AUTOBRIEF设为YES。

为了注释一个类中的member,首先要对该类作注释。

同样的问题上升到namespace。

要注释一个全局的function,typedef,enum或preprocessor定义,你需要首先定义(只能用@file,因为文件不再任何东西里面,就只能用特殊命令实现了,而不像类、函数等,既可以在上方放注释,也可以用@class、@fn进行注释)包含它的文件。

(1)文件头注释/** @file [file‐name]*@brief brief description* @author <list of authors>* [@author <authors description>]* @date <date>* @version <version number>* @note* detailed description*/一般@file后我们空着,Doxygen会默认为是@file所在文件的文件名。

[]表示可选,{}表示重复0到N次,<>表示必须参数。

@author 表示作者,@data表示日期,@version表示版本号。

(2)类注释/*** @class <class‐name> [header‐file] [header‐name]* @brief brief description* @author <list of authors>* @note* detailed description*/header‐file是类声明所在的头文件名字,header‐name是要显示的链接文字,一般为头文件的真实路径。

DOXYGEN简明实用教程

DOXYGEN简明实用教程

DOXYGEN 简明实用教程DOXYGEN 简明实用教程1.所有注释都可以使用III开始(C++风格)。

2•类体前必须加上///描述,否则会产生警告【Compound 类名is not documented】描述中最好不要带有此类的类名,否则会产生两个链接(但指向同一个文件)影响美观。

3.public 和protected 会自动生成,但是private 要在Expert 的Build 选项里勾中EXTRACT_PRIV ATE,static 成员也是如此。

4.函数注释方式III Constructor 【函数描述】III @param [in] pos The position of Camera in world coordinate 【参数描述 1 】III @param [in] lookat The point Camera looks at in world coordinate 【参数描述2】BaseCamera( const D3DXVECTOR3&amp; pos, constD3DXVECTOR3&amp; lookat );5. 变量注释方式D3DXVECTOR3 m_Position; I*!&lt; Camera position point in world coordinate *I 或D3DXVECTOR3 m_Position; III&lt; Camera position point in world coordinate两种方式产生的结果不同。

前者会单独产生一块Member DataDocumentation 注释,后者会在Pubilc/Protected/Private Attributes 变量描述后紧跟注释。

6.@参数和参数相同7.产生描述顺序和注释顺序相同,一般风格为lll 函数描述lll @param 参数描述lll @return 返回值描述lll @retval 返回值 1 返回值 1 描述lll @retval 返回值 2 返回值 2 描述lll @remarks 注意事项Ill @note 注意事项,功能同@remarks,显示字样不同/// @par 自定义图块,后面可跟示例代码之类Ill @code(必须使用@endcode结束)lll 示例代码(无需缩进)lll @endcodelll @see 其他参考项【产生指向参考的链接】函数代码声明8.特殊符号lll - 产生一个黑色圆点9.定义在类体里面的enumlll Camera typesenum CAMERA_TYPECAMERA_FIRST_VIEW,l*!&lt; Camera that looks from thefirst view */CAMERA_MODEL_VIEW,///&lt; Camera that looks from the third view};两种风格相同。

ai cursor doxygen注释

ai cursor doxygen注释

本人(人工智能)在现代社会中扮演着越来越重要的角色,其应用范围已经覆盖了各个领域。

而在本人开发和应用过程中,文档注释也显得尤为重要。

本文将围绕本人、光标移动和Doxygen注释展开讨论,介绍它们在软件开发中的重要性和应用方法。

一、本人(人工智能)简介人工智能是模拟、延伸和扩展人类的感知、推理、决策和行为的能力,利用计算机系统来对人类智力过程的理解、推理能力、学习能力、语言能力、视觉能力和感知能力进行模拟,使计算机系统具有感知、学习、推理和解决问题的能力。

本人的发展应用在语音识别、图像识别、自然语言处理、智能推荐等众多领域,并且已经逐渐渗透到各行各业。

二、光标移动在计算机操作中,光标是用于编辑文本和选择操作目标的可见符号。

光标移动是指改变光标的位置,从而改变编辑或选择操作的对象的过程。

在软件开发中,光标移动对程序员编写代码和进行调试有着重要的作用。

程序员常常需要在代码中进行光标的快速定位和移动,以便于进行代码的修改、调试和优化。

三、Doxygen注释Doxygen是一个开源的自动生成代码文档的工具,它能够从源代码中提取注释并生成文档。

Doxygen主要用于C++、C、Objective-C、C#、Java、Python、IDL(Corba, Microsoft, andUNO/OpenOffice flavors)、Fortran、VHDL等语言的注释文档。

通过一定的注释规范,Doxygen可以自动提取代码中的注释,生成程序的API文档,方便其他程序员查阅和理解代码结构和功能。

在软件开发中,良好的注释是非常重要的,它不仅可以为其他程序员提供清晰的代码解释和使用文档,也能够为自身提供便利的查阅和维护。

而Doxygen注释作为一种自动生成文档的工具,能够帮助程序员轻松地维护代码和生成规范的文档,提高代码的可读性和可维护性。

总结:本人、光标移动和Doxygen注释在软件开发中都具有重要的作用,它们分别代表着技术的前沿应用、程序员的操作工具和代码文档的生成工具。

doxygen 语法

doxygen 语法

doxygen 语法Doxygen 语法简介概述:Doxygen 是一种用于生成软件文档的工具,它可以通过分析源代码中的注释来自动生成文档。

在大型项目中,良好的文档是非常重要的,因为它能够帮助开发者更好地理解和使用代码。

Doxygen 提供了一套简洁易用的语法,可以帮助开发者生成清晰、规范的文档。

注释语法:在源代码中,我们可以使用特定的注释语法来描述代码的功能、参数、返回值等信息。

下面是一些常用的注释语法示例:1. 文件注释:/*** @file filename* @brief 文件的简要描述* @details 文件的详细描述*/2. 函数注释:/*** @brief 函数的简要描述* @details 函数的详细描述* @param 参数名称参数描述 * @return 返回值描述*/3. 类注释:/*** @class ClassName* @brief 类的简要描述* @details 类的详细描述*/4. 成员变量注释:/*** @brief 成员变量的简要描述 * @details 成员变量的详细描述 */5. 枚举注释:/*** @brief 枚举类型的简要描述 * @details 枚举类型的详细描述 */6. 宏定义注释:/*** @brief 宏定义的简要描述* @details 宏定义的详细描述*/7. 文件包含注释:/*** @fileincluded*/8. 链接注释:/*** @sa function_name* @see function_name*/生成文档:使用Doxygen 生成文档非常简单,只需要按照以下步骤进行操作:1. 在源代码中添加合适的注释。

2. 创建一个配置文件,配置文件中包含一些生成文档的选项。

3. 运行 Doxygen,指定配置文件作为输入。

4. Doxygen 会根据配置文件的设置,分析源代码并生成相应的文档。

配置文件示例:下面是一个简单的配置文件示例:```PROJECT_NAME = "My Project"OUTPUT_DIRECTORY = docEXTRACT_ALL = YESEXTRACT_PRIVATE = YESEXTRACT_STATIC = YES```在这个示例中,配置文件指定了项目名称为"My Project",生成的文档将保存在"doc" 目录下。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、文件注释
每个.h和.cpp文件的头部,必须要有简要注释和详细注释,习惯用法如下:[cpp] view plaincopy
1./** @file
2.* @brief brief description
3.* @author <list of authors>
4.* @date <date>
5.* @version <version number>
6.* @note
7.* detailed description
8.*/
2、类注释
每个类的声明上方,必须要有简要注释和详细注释,习惯用法如下:[cpp] view plaincopy
1./**
2.* @class
3.* @brief brief description
4.* @author <list of authors>
5.* @note
6.* detailed description
7.*/
3、全局变量和全局宏
全局变量和全局宏必须要有注释。

如果注释较短,则可以在
上方用/** @brief some brief description */
或右方用///< some brief description。

进行简要注释。

4、函数注释
任何函数都必须要有简要注释和详细注释,习惯用法如下:
[cpp] view plaincopy
1./**
2.* @brief brief description
3.* @author <list of authors>
4.* @param[in|out] <parameter‐name><parameter description>
5.* @exception <exception‐object><exception description>
6.* @return <description of the return value>
7.* @note
8.* detailed description
9.* @remarks <remark text>
10.*/
4.1类的函数成员
在头文件的定义处进行简要注释,放在上方:
[cpp] view plaincopy
1.class Test
2.{
3.public:
4./** @brief brief description */
5.int m_test(int a);
6.}
而在实现处给出详细注释:
[cpp] view plaincopy
1./**
2.* @author <list of authors>
3.* @param [in|out] <parameter‐name><parameter descriptio
n>
4.* @exception <exception‐object><exception description>
5.* @return <description of the return value>
6.* @note
7.* detailed description
8.* @remarks <remark text>
9.*/
10.int Test::m_test(int a)
11.{
12.return 0;
13.}
4.2纯虚函数
由于没有实现,则简要注释和详细注释不需分开。

4.3类的数据成员
只在头文件的定义处进行简要注释,不要详细注释。

可以在上方用/** @brief some brief description */
或右方用///< some brief description
5、枚举定义
每个枚举定义必须添加注释,格式如下:
[html] view plaincopy
1./** Another enum, with inline docs */
2.enum AnotherEnum
3.{
4.V1, ///< value 1
5.V2 ///< value 2
6.};
6、示例
下面是一个简单的例子,完全符合约定:
6.1首先是文件定义
/** @file
* @brief a brief description for the file.
* @author soulmachine
* @date 2008/07/02
* @version 0.1
*
* detailed description for test.cpp
*/
6.2全局函数定义
/** @brief global function, no details
* @note some details about global function*/
[cpp] view plaincopy
1.void global_test();
6.3类定义
/** @class Test test.h "inc/test.h"
* @brief A test class.
*
* A more elaborate class description.
*/
[cpp] view plaincopy
1.class Test
2.{
3.public:
4./** @brief A enum, with inline docs */
5.enum TEnum
6.{
al1, /**< enum value TVal1. */
al2, /**< enum value TVal2. */
al3 /**< enum value TVal3. */
10.}
11.//这里Doxygen对enumPtr的处理有点问题
12.*enumPtr, ///< enum pointer.
13.enumVar; ///< enum variable.
14./** @brief A constructor. */
15.Test(); /** @brief A destructor. */
16.~Test(); /** @brief a normal member taking two
arguments and returning an integer value. */
17.int testMe(int a,const char *s);
18.
19.
20./** @brief A pure virtual member.
21.* @param[in] c1 the first argument.
22.* @param[in] c2 the second argument.
23.* @see testMe()
24.*/
25.virtual void testMeToo(char c1,char c2) = 0;
26.int publicVar;//< a public variable.
27./** @brief a function variable, note Details.
*/
28.int (*handler)(int a,int b);
29./** @brief brief before delaration */
30.int m_func(int a);
31.};
/** A more elaborate description of the constructor. */
[cpp] view plaincopy
1.Test::Test()
2.
3.{
4.
5.}
/** A more elaborate description of the destructor. */
[cpp] view plaincopy
1.Test::~Test()
2.
3.{
4.
5.}
/**
* @param[in] a an integer argument.
* @param[in] s a constant character pointer.
* @return The test results
* @note Details.
* @par* Another detail.
* @see Test()
* @see ~Test()
* @see testMeToo()
* @see publicVar()
*/
[cpp] view plaincopy
1.int Test::testMe(int a,const char *s)
2.{
3.return 0;
4.}
/**
* @param[in] a a interger
* @return 0
* @note detailed description
* @remarks remarks,important
* @since 1.0
* @see testMeToo
*/
[cpp] view plaincopy
1.int Test::m_func(int a)
2.{
3.return 0;
4.}。

相关文档
最新文档