资源预览内容
第1页 / 共52页
第2页 / 共52页
第3页 / 共52页
第4页 / 共52页
第5页 / 共52页
第6页 / 共52页
第7页 / 共52页
第8页 / 共52页
第9页 / 共52页
第10页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。C+编码规范及要求王卓 -02-21版本 V1.0 第一次编写有关C、 C+的编码风格和程序质量能够参照高质量C/C+编程1概述32字体及颜色33文件结构43.1文件头注释43.2头文件113.3实现文件133.4文件的组织结构144命名规则154.1类/结构164.2函数164.3变量174.4常量184.5枚举、 联合、 typedef184.6宏、 枚举值184.7名空间185代码风格与版式195.1类/结构225.2函数285.3变量、 常量375.4枚举、 联合、 typedef395.5宏405.6名空间405.7异常411 概述高品质、 易维护的软件开发离不开清晰严格的编码规范。本文档详细描述C+软件开发过程中的编码规范。本规范也适用于所有在文档中出现的源码。2 字体及颜色强烈推荐采用Visual Assist X作为Visual Studio的辅助工具。在编辑源码时, 应该根据编辑器支持的自定义选项最大限度地满足下表定义的高亮规范。类型颜色举例注释 R0;G128;B0( 深绿) / 注释例子关键字 R0;G0;B255( 蓝) typedef, int, dynamic_cast class .类、 结构、 联合、 枚举 R0;G0;B255( 蓝) class CMyClass, enum ERRTYPE, typedef int CODE .名空间 R0;G0;B255( 蓝) namespace BaiY数字 R255;G0;B0( 红) 012 119u 0xff .字符、 字符串 R0;G128;B128( 深蓝绿) string, c .宏定义、 枚举值 R255;G128;B0( 橙黄) #define UNICODE, enum RED, GREEN, BLUE ;操作符 R136;G0;B0( 棕色) , = + - * / ; ( ) .方法/函数 R136;G0;B0( 棕色) MyFunc()变量 R128;G128;B128( 中灰色) int nMyVar;背景 R255;G255;B255( 白色) 其它 R0;G0;B0( 黑色) other things( 一般是一个错误) Windows平台中, 应该优先使用字体: Fixedsys, 这也是操作系统UI( 所有的菜单、 按钮、 标题栏、 对话框等等) 默认使用的字体。该字体的好处很多: 1、 兼容性好: 所有Windows平台都支持该字体2、 显示清晰: 该字体为点阵字体, 相对于矢量字体来说在显示器中呈现的影像更为清晰。矢量字体虽然能够自由缩放, 但这个功能对于纯文本格式的程序源码来说没有任何实际作用。而且当显示字号较小( 12pt以下) 时, 矢量字体还有一些明显的缺陷: l 文字的边缘会有严重的凹凸感。 l 一些笔画的比例也会失调。 l 开启了柔化字体边缘后, 还会使文字显得模糊不清。3、 支持多语言: Fixedsys是UNICODE字体, 支持世界上几乎所有的文字符号。这对编写中文注释是很方便的。3 文件结构3.1 文件头注释所有C+的源文件均必须包含一个规范的文件头, 文件头包含了该文件的名称、 功能概述、 作者、 版权和版本历史信息等内容。标准文件头的格式为: /*! file*模块名 : 文件名 : 相关文件 : 文件实现功能 : 作者 : 版本 : -备注 : -修改记录 : 日 期 版本 修改人 修改内容YYYY/MM/DD X.Y */如果该文件有其它需要说明的地方, 还能够专门为此扩展一节: /*! file*模块名 : 文件名 : 相关文件 : 文件实现功能 : 作者 : 版本 : -备注 : -修改记录 : 日 期 版本 修改人 修改内容YYYY/MM/DD X.Y * 项目1 - 项目1.1 - 项目1.2=* 项目2 - 项目2.1 - 项目2.2.*/每行注释的长度都不应该超过80个半角字符。还要注意缩进和对其, 以利阅读。关于文件头的完整例子, 如下: /*! file*模块名 : 白杨string扩展库文件名 : stringEx.h相关文件 : stringEx.cpp文件实现功能 : C+ string 类功能扩展作者 : 白杨版本 : 1.10-备注 : 在string的基础上构建, 未添加任何数据成员-修改记录 : 日 期 版本 修改人 修改内容 /08/27 1.0 白杨 创立 /12/29 1.1 白杨 新增正则表示式、 operator操作符等功能 /01/28 1.2 白杨 新增部分函数 /02/02 1.3 白杨 新增部分函数 /03/11 1.6 白杨 新增部分函数 /03/29 1.7 白杨 新增ref(), set_size()等函数 /06/28 1.8 白杨 移植到namespace BaiY /07/15 1.9 白杨 新增换码/还原函数; 为所有正则函 数增加perl风格的字符类 /07/19 1.10 白杨 新增vformat()函数; 重写、 改进 format()函数*版权所有(c) , , 白杨, 保留所有权利=to_str、 from_str、 to_wstr、 from_wstr等函数只能做标准ASCII字符集的宽/窄字符转换=* format和vformat函数所能处理的最大字符串长度限制为MAX_STRING, 如需临时改变, 能够使用: format(maxLength, fmt, .)函数和vformat(maxLength, fmt, arglist)函数=* 支持如下ostream风格的流式输入操作, 能够方便地用于将个类数据追加
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号