没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
C++编程规范 Modified Version 1.0
by Lq
基本要求
单个函数的程序行数最好不得超过 行或者在 编辑窗口 屏范围内,以控制在 编辑窗口
一屏之内为佳
一个函数仅完成一件功能
避免设计多参数函数,不使用的参数从接口中去掉目的减少函数间接口的复杂度。
检查函数所有参数输入的有效性。
函数名应准确描述函数的功能。
减少函数本身或函数间的递归调用,因为递归调用特别是函数间的递归调用(如 ),
影响程序的可理解性;递归调用一般都占用较多的系统资源(如栈空间);递归调用对程序的测
试有一定影响。故除非为某些算法或功能的实现方便,应减少没必要的递归调用。
使用断言来发现软件问题,提高代码可测性。断言是对某种假设条件进行检查(可理解为若条件
成立则无动作,否则应报告),它可以快速发现并定位软件问题,同时对系统错误进行自动报警 。
断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位,从而缩短软件问题定位时
间,提高系统的可测性。实际应用时,可根据具体情况灵活地设计断言。
尽量使用标准库函数和公共函数,以及存在于标准库函数中的应避免重复设计函数。
禁止定义全局变量,尽量使用局部变量
多使用括号以避免二义性如 !"
双目操作符两边应该加上一个空格
仔细考虑逻辑分枝,不能出现逻辑错误
函数间要有空行分开,一个程序中的空行数目最好占 ##
变量的定义尽可能放在最开始处,多态函数和功能相近的函数集中放在一起
可读性要求
可读性第一,效率第二
保持注释与代码完全一致
每个源程序文件,都有文件头说明,说明规格见附件中$$%%编程规范
每个函数,都有函数头说明,说明规格见附件中$$%%编程规范
主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义
常量定义(&'()*'+,)有相应说明
处理过程的每个阶段都有相关注释说明
在典型算法前都有注释
利用缩进来显示程序的逻辑结构,缩进量一致并以 -./ 键为单位,定义 -./ 为4个
空格或者 个空格
循环、分支层尽量控制在三层内,最好不要超过五层
注释可以与语句在同一行,也可以在上行
空行和空白字符也是一种特殊注释
一目了然的语句不加注释
注释的作用范围可以为:定义、引用、条件分支以及一段代码
注释行数(不包括程序头和函数头说明部份)应占总行数的+到+
结构化要求
禁止出现两条等价的支路
禁止 0 语句
用语句来强调只执行两组语句中的一组禁止 1, 0和 1, !
用,234., 实现多路分支
避免从循环引出多个出口
函数只有一个出口
条件中不得有赋值语句
避免不必要的分支
不要轻易用条件分支去替换逻辑表达式
正确性与容错性要求
程序首先是正确,其次是效率,然后是优美。
改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响 ,必须说明可能引起
的新的 /!0。
所有变量在调用前必须被初始化
对所有的用户输入,必须进行合法性检查
不要比较浮点数的相等,如:5,不可靠
程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机
是否联机等
单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试
可重用性要求
重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类
公共控件或类应考虑 66 思想,减少外界联系,考虑独立性或封装性
公共控件或类应建立使用模板
命名规范
命名应尽量使用匈牙利命名法,变量名或函数名中使用大写字符来区分各个部分,以便于记忆和
阅读。如 /7.38! 9& 1 &)。类中的变量用长名字,局部变量用短名字。
类成员变量前一般应加上 :;,紧接着是变量的类型。
整型:
长整型<1
无符号整型:!
无符号长整型:2
字符:3
布尔量:/
浮点数<
双精度浮点<
字符串:,1=,>,>=1=.
指针:=
字节指针:=/
无符号指针:=?
字符指针:1=,>
整型指针:1=
文件指针:=
如:
:;-.1*!::;,7.3:;/@?0:;7 0;16= &. 0;2.*1=,>*.: A
1=AB,&:-B= !8,0)&:;=70 ,,
局部变量应尽量易懂简洁,使用常见的变量,如
*!:!CD1 =,9, @ .*!: E@ 9,01 .:
临时变量,如 1:=:=:=A :=A
函数命名也应该见名知意。如 .111&..AB1 @ .&&..(:-: F ) E)
常见的函数
)6= 11 . ;F ;A ;@ .;G.;H ;A.;A=;
3 D;- ,;(11;7 ,,;A;&;A 1 ;),;'E,;;'E。
宏命名和 B= 定义类型应详细,避免重复,一律为大写,如
I &'G;'87-J.K.K 1 .".*LGG"MM
I AL'AA
I ()G
-B= 定义:
B= ,!.0
K
3.1=>A! NO"
3.1=>-1 NO"
3.1=>L@GNO"
,3-B= "
10=,"
101 "
M--6&J5G7--6&J"(指针前加 G7)
命名约定见:命名约定
自定义消息从 H8;LA'@ 开始
I 8J77;8'AAF'H8;LA'@%E
缩写方法:
较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大
家公认的缩写。
示例:如下单词的缩写能够被大家基本认可。
:=可缩写为:="
1.0可缩写为10"
,.,可缩写为,."
: 可缩写为"
: ,,.0 可缩写为:,0"
对于变量命名,禁止取单个字符(如 、C、D),建议除了要有具体含义外,还能表明其变量类
剩余11页未读,继续阅读
zhenyong1984
- 粉丝: 0
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 批量word文件内容替换工具1.0 (批量实现多个 Word 文档文件文字替换利器).exe
- Cartoon GUI Pack 1.2.zip
- 【数据集和代码】基于加速度传感器的步态识别行人分类实验(可做步态识别)
- 我分享个魔兽内存修改器
- Python毕业设计基于Django的网易云数据分析可视化大屏系统的设计与实现+使用说明+全部资料(优秀项目).zip
- mp3 idv2,idv1,frame分析工具
- Python毕业设计基于Django的网易云数据分析可视化大屏系统的设计与实现+使用说明+全部资料(高分项目).zip
- 人工兔优化算法ARO MATLAB源码, 应用案例为函数极值求解以及优化svm进行分类,代码注释详细,可结合自身需求进行应用
- 人才网站设计-asp.net+sql-(系统源码)
- asp.net+sql人才网站设计-含系统源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0