Doxygen常用命令
Doxygen常用命令
- 术语和约定
- 记录类型
- \def 命令
- \enum 命令
- \struct 命令
- \fn 命令
- \var 命令
- \typedef 命令
- 文件描述
- \file 命令
- \author 命令
- \date 命令
- \version 命令
- \copyright 命令
- \attention 命令
- \note 命令
- \warning 命令
- \remark 命令
- \deprecated 命令
- 函数描述
- \brief 命令
- \details 命令
- \param 命令
- \ref 命令
- \retval 命令
- 记录列表
- \bug 命令
- \test 命令
- \todo 命令
- 组
- \defgroup 命令
- \addtogroup 命令
- \ingroup 命令
- 页面
- \mainpage 命令
- \page 命令
- \subpage 命令
- 段落
- \section 命令
- \subsection 命令
- \cond 命令
- 格式
- \par 命令
- \parblock 命令
- \verbatim 命令
- \a 命令
- \b 命令
- \c 命令
- \n 命令
- 转义
术语和约定
所有命令都以反斜杠\
或@
符号开始,使用\
还是@
取决于你喜欢更哪一种风格。
有些命令有一个或多个参数。每个参数都有一定的范围:
- 如果使用
<>
尖括号(尖括号不必键入),则表示参数为单个单词; - 如果使用
()
括号(圆括号不必键入),则表示参数扩展到找到命令所在行的末尾。 - 如果使用
{}
花括号(花括号不必键入),则参数扩展到下一段。段落由空白行或段落指示符分隔。注意{}
花括号也用于命令选项,这时的花括号是强制的,只是“普通”字符。开始的花括号必须直接跟在命令后面,所以不能有空格。
如果使用[]
方括号(方括号不必键入),参数是可选的,除非它们被放在引号之间,在这种情况下,[]
方括号是命令参数的强制部分。
记录类型
\def 命令
\def <宏名>
表明注释块是#define
宏的记录。
/*! \def MAX(x,y)* 这里是 MAX(x,y) 宏的记录,这个注释块可以放在文档的其他位置*//*! 这里是 MAX(x,y) 宏的记录,这个注释块必须放在宏的前面 */
#define MAX(x,y) ((x)>(y)?(x):(y)) /*!< 这里是 MAX(x,y) 宏的记录,这个注释块必须放在宏的后面 */
\enum 命令
\enum <枚举名>
表明注释块是名称为<枚举名>
的枚举记录。如果注释块直接位于enum声明的前面,则\enum
注释可以省略。
/*! \enum colour* 这里是枚举 colour 的记录,因为注释块在声明的前面,所以上面的命令是可以省略的*/
enum colour {RED,BULE,GREEN
};
\struct 命令
\struct <结构名>
表明注释块是名称为<结构名>
的结构体的记录。
\union <联合名>
表明注释块是名称为<联合名>
的联合的记录。
\fn 命令
\fn (函数声明)
表明注释块是函数(全局函数或类的成员函数)的记录。只有当注释块没有放在函数声明或定义的前面(或后面)时,才需要这个命令。如果你的注释块在函数声明或定义的前面,这个命令可以被省略(为了避免冗余)。
/*! \fn int func(char *, int)* 这里是函数 func 的记录,因为注释块在声明的前面,所以上面的命令是可以省略的,*/
int func(char *, int);
\var 命令
\var (变量声明)
表明注释块是变量或枚举值(全局)的记录
\typedef 命令
\typedef (类型定义声明)
表明注释块是 typedef 的记录。
/*! \typedef typedef int uint32_t * 这里是 typedef 的记录*/
typedef int uint32_t;
文件描述
\file 命令
\file [<文件名>]
表明注释块是名称为<文件名>
的源文件或头文件的记录。如果文件名不是唯一的,文件名可以包含(一部分)路径。如果文件名被省略,则包含\file
命令的记录块将属于它所在的文件。
重要:
全局函数、变量、类型定义和枚举的记录只有在它们所在的文件有文件记录
或者EXTRACT_ALL
被设置为YES
时才会包含在输出中。
/*! \file source.c* 这里是 source.c 文件的记录,* 如果没有此文件记录,下面的枚举记录也不会包含在输出中* 除非 EXTRACT_ALL 配置被设置为 YES *//*! 这里是枚举记录,如果该文件没有文件记录,则此记录不会被输出,* 除非 EXTRACT_ALL 配置被设置为 YES */
enum colour {RED,BULE,GREEN
};
\author 命令
\author { 作者列表 }
开始一个可以输入一个或多个作者姓名的段落。这段将缩进。这段文字没有特殊的内部结构。所有的视觉增强命令可以在段落内使用。多个相邻的\author
命令将被合并成一个段落。当遇到空行或其他分段命令时,\author
命令结束。
/*** @file* @author 作者,对作者的描述*/
\date 命令
\date { 日期描述 }
开始一个可以输入一个或多个日期的段。这段将缩进。这段文字没有特殊的内部结构。所有的视觉增强命令可以在段落内使用。多个相邻的\date
命令将被合并成一个段落,每个日期描述将在新一行开始。或者,一个\date
命令可以提到几个日期。当遇到空行或其他分段命令时,\date
命令结束。
/** @file * \date xxxx年xx月xx日
*/
\version 命令
\version { 版本号 }
开始一个可以输入一个或多个版本字符串的段落。这段将缩进。这段文字没有特殊的内部结构。所有的视觉增强命令可以在段落内使用。多个相邻的\version
命令将被合并成一个段落,每个版本描述将从一个新行开始。或者,一个\version
命令可能会提到几个版本字符串。当遇到空白行或其他分段命令时,\version
命令结束。
\copyright 命令
\copyright { 版权描述 }
开始一个描述实体版权的段。这一段将缩进。这段文字没有特殊的内部结构。
/** @file* \copyright 版权描述
*/
\attention 命令
\attention { 注意文本 }
开始一个需要注意的信息段落。这段将缩进。这段文字没有特殊的内部结构。所有的视觉增强命令可以在段落内使用。多个相邻的\attention
命令将被合并成一个段落。当遇到空白行或其他分段命令时,\attention
命令结束。
/** * @file* 这是文件记录* @attention 在这里编辑注意信息。* 这里可以继续编辑,要结束该命令,只需将下一行保留为空行即可* * @attention 相邻的 attention 命令会被合并为一个段落。*/
\note 命令
\note { 注解内容 }
开始一个可以输入一个注解的段。这段将缩进。这段文字没有特殊的内部结构。所有的视觉增强命令可以在段落内使用。多个相邻
\note
命令将被合并成一个段,每个注解描述将在新的一行开始。或者,一个\note
命令可以提到几个注解。当遇到空行或其他分段命令时,\note
命令结束。
\warning 命令
\warning { 警告信息 }
开始一个段落,可以输入一个或多个警告消息。这段将缩进。这段文字没有特殊的内部结构。所有的视觉增强命令可以在段落内使用。多个相邻的\warning
命令将被合并成一个段落,每个警告描述将在新一行开始。或者,一个\warning
命令可能会提到多个警告。当遇到空白行或其他分段命令时,\warning
命令结束。
\remark 命令
\remark { 备注文本 }
开始一个可以输入一个或多个备注的段落。这段将缩进。这段文字没有特殊的内部结构。所有的视觉增强命令可以在段落内使用。多个相邻的\remark
命令将被合并成一个段落,每个备注将在新的一行开始。或者,一个\remark
命令可以提到几个备注。当遇到空白行或其他分段命令时,\remark
命令结束。
/** @file * \remark 备注文本*/
\deprecated 命令
\deprecated { 弃用描述 }
开始一个段,指示此记录块属于已弃用的实体。可用于描述替代品、预期寿命等。
这会生成一个弃用表。
/** @file * \deprecated 弃用描述
*/
函数描述
\brief 命令
\brief { 简要描述 }
开始一段简要描述。对于函数和文件,简要描述将在列表中显示。
/** * @brief 简要描述* * 详细描述*/
void fun(void)
\details 命令
\details { 详细描述 }
就像\brief
开始一个简要的描述,\details
开始详细的描述。你也可以开始于一个新的段落(空行),这样就不需要\details
命令了。
/** @file * \brief 简要描述* \details 详细描述
*//** @file * \brief 简要描述** 详细描述
*/
\param 命令
\param '['方向']' <参数名> { 参数描述 }
开始一个名称为<参数名>
的函数参数的参数描述 。检查参数是否存在,如果这个(或任何其他)参数的记录缺失或没有出现在函数声明或定义中,则给出一个警告。
\param
命令有一个可选属性dir
,用来指定参数的方向。可能的值是"[in]"
, "[in,out]"
,和"[out]"
,注意这个描述中的[
方括号]
,这是必须键入的。
参数描述是一个没有特殊内部结构的段落。所有的视觉增强命令可以在段落内使用。多个相邻的\param
命令将被合并成一个段落,每个参数描述将从新的一行开始。当遇到空行或其他分段命令时,\param
命令结束。
注意,您也可以使用一个逗号分隔列表来记录多个参数。
/** * @brief 设置坐标* @param x,y,z 三维空间中的位置坐标* @param t 时间*/
void setPosition(double x,double y,double z,double t);
\ref 命令
\ref <名称> ["(文本)"]
创建对指定段、分段、页或锚点的引用。对于HTML文档,\ref
命令将生成到该段的链接。对于一个段或分段,段的标题将被用作链接的文本。对于锚点,将使用引号之间的可选文本,如果没有指定文本,则使用<名称>
。
\retval 命令
\retval <返回值> { 描述 }
开始一段名称为<返回值>
函数返回值的描述。构成描述的段落的文本没有特殊的内部结构。所有的视觉增强命令可以在段落内使用。多个相邻的\retval
命令将被合并成一个段落,每个返回值描述将从新的一行开始。当遇到空行或其他一些分段命令时,\retval
描述结束。
记录列表
\bug 命令
\bug { BUG描述 }
开始报告一个或多个bug的段落。这段将缩进。这段文字没有特殊的内部结构。所有的视觉增强命令可以在段落内使用。多个相邻的\bug
命令将被合并成一个段落。每个bug描述将在新一行开始。或者,一个\bug
命令可能会提到几个bug。当遇到空白行或其他分段命令时,\bug
命令结束。
这会生成一个bug表。
\test 命令
\test { 描述测试用例的段落 }
开始一个可以描述测试用例的段落。该描述还将把测试用例添加到一个单独的测试列表中。
\todo 命令
\todo { 描述待办事项的段落 }
开始一个描述待办事项的段落。该描述还将向单独的待办事项列表添加一个项目。
组
\defgroup 命令
\defgroup <组名> (组标题)
表明注释块是一组类
、文件
或名称空间
的记录。这可以用于对类、文件或名称空间进行分类,并记录这些类别。您还可以将组用作其他组的成员,从而构建组的层次结构。
<组名>
参数应该是一个单字
标识符。
/*! \defgroup mygrp This is my group.* 这里为 mygrp 组添加记录* @{*/ /*! A function */
void func1()
{}/*! @} */
\addtogroup 命令
\addtogroup <组名> [(标题)]
定义一个类似\defgroup
的组,但多次使用相同<name>
不会导致警告,而是合并记录到已有的组。
标题是可选的,所以这个命令也可以像这样使用@{
和@}
向一个现有的组添加一些实体:
/*! \addtogroup mygrp* 这里为 mygrp 组添加记录* @{*/ /*! A function */
void func1()
{}/*! @} */
\ingroup 命令
\ingroup (<组名> [<组名> <组名>])
如果\ingroup
命令放在文件注释块中,那么它将被添加到以<组名>
标识的一个或多个组中
页面
\mainpage 命令
\mainpage [(标题)]
如果\mainpage
命令放置在注释块中,该注释块用于定制索引页(HTML)或第一章(LATEX)。title
参数是可选的,它会替换doxygen的默认标题。如果你不想要任何标题,你可以指定notitle
作为\mainpage
的参数。
/*! \mainpage My Personal Index Page* \section intro_sec Introduction* This is the introduction.* \section install_sec Installation* \subsection step1 Step 1: Opening the box* etc...*/
\page 命令
\page <页面名> (标题)
表明注释块是与特定文件或成员不直接相关的一段文档。HTML生成器创建一个包含文档的页面。LATEX生成器在“页面文档”一章中启动了一个新的部分。
注意:
<页面名>
参数由字母和数字组成。如果你希望在<页面名>
参数中使用大写字母(例如MYPAGE1),或者混合大小写字母(例如MYPAGE1),你应该将CASE_SENSE_NAMES
设置为YES
。但是,只有当您的文件系统区分大小写时,这才是可取的。否则(为了更好的可移植性),您应该在所有对页面的引用中使用的所有小写字母(例如mypage1)。
\subpage 命令
\subpage <子页面名> ["(文本)"]
该命令可用于创建页面的层次结构。使用\defgroup
和\ingroup
命令也可以实现相同的结构,但对于页面,\subpage
命令通常更方便。主页面(参见\mainpage
)通常是层次结构的根。
这个命令的行为类似于\ref
,它创建了一个对标签为<子页面名>
的页面的引用,并使用第二个参数指定可选的链接文本。
它与\ref
命令的不同之处在于,它只适用于页面,并在页面之间创建父子关系,其中子页面(或子页面)由标签<子页面名>
标识。
如果想添加结构而不创建多个页面,请参阅\section
和\subsection
命令。
注意:
每个页面只能是另一个页面的子页面,不允许有循环关系,即页面层次结构必须是树状结构。
/*! \mainpage 一个简单的手册* 一些一般性的信息。* 本手册分为以下几部分:* - \subpage intro* - \subpage advanced "高级用法"*/
//-----------------------------------------------------------
/*! \page intro 简介* 本页面向用户介绍该主题。* 现在你可以进入 \ref advanced "高级用法" 了。*/
//-----------------------------------------------------------
/*! \page advanced 高级用法* 此页面供高级用户使用。* 确保你已经阅读了 \ref intro "简介".*/
段落
\section 命令
\section <段名> (段标题)
创建一个名为<段名>
的段。段的标题由\section
命令的第二个参数指定。
警告:
这个命令只在相关页面记录中工作,而不是在其他记录块中!
/*! \page software_page 软件主页索引* \section intro_sec 简介* 这里是简介。* \section install_sec 安装* \subsection step1 步骤1:双击exe文件* \subsection step2 步骤2:点击立即安装* 等等。*/
\subsection 命令
\subsection <子段名> (子段标题)
创建一个名为<子段名>
的子段。子段的标题由\subsection
命令的第二个参数指定。
警告:
这个命令只在相关页面记录块的一部分内工作,而不在其他记录块中工作!
/*! \page software_page 软件主页索引* \section intro_sec 简介* 这里是简介。* \section install_sec 安装* \subsection step1 步骤1:双击exe文件* \subsection step2 步骤2:点击立即安装* 等等。*/
\cond 命令
\cond [(段落标签)]
开始一个以相应的\endcond
命令结尾的条件段。这对命令的主要目的是(有条件地)将文件的一部分排除在处理之外(在旧版本的doxygen中,这只能通过C预处理器命令实现)。
在\cond
和\endcond
之间的段可以通过将其段标签添加到ENABLED_SECTIONS
配置选项来包含。如果省略了段标签,该段将被无条件地排除在处理之外。
段标签可以是段标签、圆括号、&&(与)、||(或)和 !(非)构成的逻辑表达式,例如:\cond (!LABEL1 && LABEL2)
。
条件段可以嵌套。
格式
\par 命令
\par [(段落标题)] { 段落内容 }
如果给定了一个段落标题,这个命令以用户定义的标题开始一个段落。标题一直延伸到行尾。命令后面的段落将缩进。
如果没有给出段落标题,这个命令将开始一个新的段落。这也将在其他段落命令(如\param
或\warning
)中工作,而不会结束这些命令。
这段文字没有特殊的内部结构。所有的视觉增强命令可以在段落内使用。当遇到空行或其他分段命令时,\par
命令结束。
/** @file * \par 用户定义段落:* 段落内容* \par* 同一标题下的新段落。* \note* 这条注解由两个段落组成。* 这是第一个段落。* \par* 这是第二个段落。* 更多的一般文本。
*/
\parblock 命令
\parblock
对于期望以单个段落作为参数的命令(例如\par
、\param
和\warning
), \parblock
命令允许开始一个覆盖多个段落的描述,然后以\endparblock
结束。
/** * @param p* \parblock* 参数描述的第一段* * 参数描述的第二段* \endparblock* 注释块的其余部分继续*/
void fun(int p);
\verbatim 命令
\verbatim
开始一个将逐字包含在记录中的文本块。块应该以\ endveratim
命令结束。在一个逐字块中禁用所有命令。
\a 命令
\a <单词>
以斜体显示参数<单词>
。使用此命令来强调单词。
\b 命令
\b <单词>
使用粗体显示参数<单词>
。相当于< b > < / b >
。把多个单词用粗体表示请使用 < b > 多个单词 < / b >
。
\c 命令
\c <单词>
使用打字机字体显示参数<单词>
。相当于< tt > < / tt >
。
\n 命令
\n
换行。
转义
\\
该命令将反斜杠字符\
写入输出。在某些情况下,反斜杠必须转义,因为doxygen使用它来检测命令。
\@
这个命令在输出中写入一个@
符号。在某些情况下,必须转义@
符号,因为doxygen使用它来检测Javadoc命令。
\&
这个命令将&
字符写入输出。这个字符必须转义,因为它在HTML中有特殊的含义。
\$
这个命令将$
字符写入输出。在某些情况下,必须转义此字符,因为它用于展开环境变量。
\#
这个命令将#
字符写入输出。在某些情况下,必须转义此字符,因为它用于引用记录的实体。
\<
这个命令将<
字符写入输出。这个字符必须转义,因为它在HTML中有特殊的含义。
\>
该命令将>
字符写入输出。这个字符必须转义,因为它在HTML中有特殊的含义。
\%
这个命令将%
字符写入输出。在某些情况下,这个字符必须转义,因为它用于防止自动链接到一个也是文档化类或结构的单词。
\"
这个命令将"
字符”写入输出。在某些情况下,必须转义此字符,因为它成对使用以指示未格式化的文本片段。
\.
该命令在输出中写入一个点.
。这有助于防止在启用JAVADOC_AUTOBRIEF
情况下结束简要描述,或防止在一行开头的数字后面有一个点时开始一个带编号的列表。
\=
这个命令将等号=
写入输出。这个字符序列在某些情况下必须转义,因为它被用于Markdown头信息处理。
\::
这个命令在输出中写入一个双冒号::
。在某些情况下,必须转义此字符序列,因为它用于引用记录的实体。
\|
这个命令将一个管道符号|
写入输出。在某些情况下,这个字符必须转义,因为它用于Markdown表。
\--
这个命令将两个破折号--
写入输出。这允许在输出中写入两个连续的破折号。而不是一个n破折号字符(–)。
\---
这个命令将三个破折号---
写入输出。这允许在输出中写入三个连续的破折号,而不是一个m破折号字符(—)。
Doxygen常用命令相关推荐
- Kubectl 常用命令, 开发人员常用k8s命令
Kubectl 常用命令: 什么是常用,我用的,就是常用的
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- 客快物流大数据项目(十五):DockeFile常用命令
目录 DockeFile常用命令 一.FROM 二.MAINTAINER 三.RUN
- 客快物流大数据项目(九):Docker常用命令
目录 Docker常用命令 一.帮助命令 二.镜像命令 1.搜索镜像
- linux常用命令(转载)
Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短 ...
- maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository. ...
- linux kvm虚拟化命令,Linux系统下kvm虚拟化(三)日常管理常用命令和配置说明
根据我们之前创建和一些操作可以知道,KVM虚拟机的管理主要是通过virsh命令对环境下kvm虚拟机进行管理,下边这里整理一些常用的配置说明以及如何进行日常管理维护. 1,查看KVM虚拟机配置文件 KV ...
- kubectl常用命令_《蹲坑学kubernetes》之十五:kubectl命令详解
kubectl用于运行Kubernetes集群命令的管理工具.本章节主要讲了kubectl基本语法和使用方法.在以后的实际工作中,使用越来越多,也会越来越熟悉. 1.kubectl语法 kubectl ...
- 计算机网络管理的常用命令,网络管理常用命令图文详解.pdf
网络工程师必备 – 网络管理常用命令图文详解 网络工程师必备 网络管理常用命令 图文详解 V1.0 V1.0 包含 ping.ipconfig.netstat.nbtstat.tracert. pat ...
最新文章
- python.exe在哪个文件_pythonexe文件中的images文件夹放在哪里?
- linux交叉编译tile环境搭建,g ++ - 在Ubuntu中在32位上交叉编译64位程序时,缺少包含“bits / c ++ config.h”...
- delphi tclientsocket接收不到返回数据_RS—485中教你主站发送报文结构、从站返回报文结构?系列11...
- 22468!Windows 11新预览版发布:旧版系统支持十月终止请速升
- 我用 Python 集齐了五福
- 【转】Java 5种字符串拼接方式性能比较。
- c语言实验报告4结构体,c语言实验报告结构体.doc
- 打印学生选课清单(25分) c++实现
- Docker——网络
- 牛客网 - 简单的分数(模拟)
- 在Android上应用PhoneGap和Dojo Mobile
- 离散数学·集合论【基本的集合恒等式】
- 微信小程序—刷脸实名认证
- python 身份证号码有效性验证
- 这几种神级性能优化手段,你用过几个?
- 新版kettle学习
- 万恶的NPE如何避免,几种你必须知道的方案!!!
- 名悦集团:春节小长假后汽车保养该怎么做
- 腾讯蔡晨:十年沉淀,腾讯iOA为企业安全保驾护航 1
- flutter iPhone设备型号对照表(更新到14)