- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Doxygen注释使用中应该注意的问题
1. 没有内容的注释 1
2. 位于代码右侧的注释 1
3. 一组函数,#define的注释 1
4. 多行注释的分行问题 2
5. 隐藏私有与保护方法与属性 2
6. 隐藏其他内容 2
Doxygen注释使用中应该注意的问题
1. 没有内容的注释
/**
* @file DataProxy.h
* @brief core数据代理适配层
* @sa 参考对象
* @author zhangzewu
* @date 19/11/2012
* 详细描述
*/
问题:因为没有内容,上例标红的注释应该删除。
位于代码右侧的注释
BOOL TagUnderLine(std::string str, const char* pszText, bool bFlag);///下划线
问题:上例中标红的注释应为///下划线,否则会被当做下面代码的注释。
一组函数,#define的注释
///参数类型,与value的类型相对应
#define DVTS_int \x01
#define DVTS_float \x02
#define DVTS_string \x03
#define DVTS_indicator \x04
#define DVTS_matrix \x05
#define DVTS_dzhobj \x06
问题:上例中的注释是对这组#define的注释,但在Doxygen生成的文档中只会出现在第一个#define下面,其他#define都会没有注释。应将这组#define分组,然后将注释放在组名的下面。
/**@name #define-1(组名)
* 参数类型,与value的类型相对应(整个组的注释)
*/
//@{
#define DVTS_int \x01
#define DVTS_float \x02
#define DVTS_string \x03
#define DVTS_indicator \x04
#define DVTS_matrix \x05
#define DVTS_dzhobj \x06
//@}
多行注释的分行问题
///包信息
///第0、1位表示事务的状态信息:1-开始; 2-持续中; 3-结束
///第2位表示消息是同步还是异步: 0-同步; 1-异步
///第3位表示消息是函数还是命令: 0-函数; 1-命令
///第4位表示消息是否执行成功: 0-执行成功; 1-执行失败。仅仅在返回值是有效
问题:上例的注释在生成的文档中会一行显示,不易理解,应用BR将注释分行:
/** 包信息
* BR第0、1位表示事务的状态信息:1-开始; 2-持续中; 3-结束
* BR第2位表示消息是同步还是异步: 0-同步; 1-异步
* BR第3位表示消息是函数还是命令: 0-函数; 1-命令
* 第4位表示消息是否执行成功: 0-执行成功; 1-执行失败。仅仅在返回值是有效
*/
5. 隐藏私有与保护方法与属性
不在生成文档中显示私有方法与属性,只要在Expert-Build里面勾选EXTRACT_ALL,并不勾选EXTRACT_PRIVATE.
不在生成文档中显示保护方法与属性,需要在不显示私有方法与属性的基础上,在所有“protected:”关键字后加上@privatesection命令:
protected:
/**@privatesection
*/
6. 隐藏其他内容
需要隐藏其他内容,可以在要隐藏的内容前后加上@cond与@endcond命令,如:
///@cond
typedef struct {
size_t start;
int step; /// 可以0
size_t end;
/// 值的个数
inline size_t Count() const
{
return int(end-start)/step + 1;
}
/// 位置计算,错误返回0xffffffff
inline size_t Index(size_t v) const
{
return (v-start)%step==0 ? (v-start)/step : 0xffffffff;
}
} Range;
///@endcond
文档评论(0)