C&C++中兴编程规范Word文档格式.doc
- 文档编号:13174127
- 上传时间:2022-10-07
- 格式:DOC
- 页数:74
- 大小:579.50KB
C&C++中兴编程规范Word文档格式.doc
《C&C++中兴编程规范Word文档格式.doc》由会员分享,可在线阅读,更多相关《C&C++中兴编程规范Word文档格式.doc(74页珍藏版)》请在冰豆网上搜索。
7.2 类型 24
8 表达式与语句 29
9 函数与过程 35
9.1 参数 35
9.2 返回值 36
9.3 内部实现 37
9.4 函数调用 40
10 可靠性 42
10.1 内存使用 42
10.2 指针使用 44
10.3 类和函数 46
11 可测试性 50
12 断言与错误处理 53
附录A(资料性附录)编程模版 58
附录B(资料性附录)规范检查表 66
参考文献 71
前言
编写本标准的目的是为了统一公司软件编程风格,提高软件源程序的可读性、可靠性和可重用性,提高软件源程序的质量和可维护性,减少软件维护成本,最终提高软件产品生产力。
本规范是针对C/C++语言的编程规范,其它不同编程语言可以参照此规范执行。
本规范适用于公司所有产品的软件源程序,同时考虑到不同产品和项目的实际开发特性,本规范分成规则性和建议性两种:
对于规则性规范,要求所有软件开发人员严格执行;
对于建议性规范,各项目编程人员可以根据实际情况选择执行。
本规范的示例都以C/C++语言描述。
本规范的内容包括:
基本原则、布局、注释、命名规则、变量常量与类型、表达式与语句、函数与过程、可靠性、可测性、断言与错误处理等。
规范最后给出了标准模版供软件人员参考。
本规范由软件编程规范C/C++小组编写,主要成员如下:
技术中心研究部:
李军、刘继兴
技术中心成都所:
左雪梅
本部事业部:
李晖
网络事业部:
田小渝、许生海、徐火顺、黄志强
CDMA事业部:
程远忠、吴应祥
移动事业部:
吴从海、王宏伟
软件编程规范有系列标准,包括:
C/C++规范、GUI规范、Delphi规范、Java规范。
本标准的附录A、附录B是资料性附录。
自本标准实施之日起,以后新编写的和修改的代码均应执行本标准。
本标准由深圳市中兴通讯股份有限公司技术中心研究部提出,技术中心技术管理部归口。
本标准起草部门:
技术中心研究部。
本标准主要起草人:
软件编程规范小组。
本标准于2003年1月首次发布。
II
1范围
本标准规定了C/C++语言的编程规范。
本标准适用于公司内使用C/C++语言编码的所有软件。
本规范自生效之日起,对以后新编写的和修改的代码有约束力。
2术语和定义
下列术语和定义适用于本标准。
2.1原则
编程时应该坚持的指导思想。
2.2规则
编程时必须遵守的约定。
2.3建议
编程时必须加以考虑的约定。
2.4说明
对此规则或建议的必要的解释。
2.5正例
对此规则或建议给出的正确例子。
2.6反例
对此规则或建议给出的反面例子。
3基本原则
【原则1-1】首先是为人编写程序,其次才是计算机。
说明:
这是软件开发的基本要点,软件的生命周期贯穿产品的开发、测试、生产、用户使用、版本升级和后期维护等长期过程,只有易读、易维护的软件代码才具有生命力。
【原则1-2】保持代码的简明清晰,避免过分的编程技巧。
简单是最美。
保持代码的简单化是软件工程化的基本要求。
不要过分追求技巧,否则会降低程序的可读性。
【原则1-3】所有的代码尽量遵循ANSIC标准。
所有的代码尽可能遵循ANSIC标准,尽可能不使用ANSIC未定义的或编译器扩展的功能。
【原则1-4】编程时首先达到正确性,其次考虑效率。
编程首先考虑的是满足正确性、健壮性、可维护性、可移植性等质量因素,最后才考虑程序的效率和资源占用。
【原则1-5】避免或少用全局变量。
过多地使用全局变量,会导致模块间的紧耦合,违反模块化的要求。
【原则1-6】尽量避免使用GOTO语句。
【原则1-7】尽可能重用、修正老的代码。
尽量选择可借用的代码,对其修改优化以达到自身要求。
【原则1-8】尽量减少同样的错误出现的次数。
事实上,我们无法做到完全消除错误,但通过不懈的努力,可以减少同样的错误出现的次数。
4布局
程序布局的目的是显示出程序良好的逻辑结构,提高程序的准确性、连续性、可读性、可维护性。
更重要的是,统一的程序布局和编程风格,有助于提高整个项目的开发质量,提高开发效率,降低开发成本。
同时,对于普通程序员来说,养成良好的编程习惯有助于提高自己的编程水平,提高编程效率。
因此,统一的、良好的程序布局和编程风格不仅仅是个人主观美学上的或是形式上的问题,而且会涉及到产品质量,涉及到个人编程能力的提高,必须引起大家重视。
4.1文件布局
【规则2-1-1】遵循统一的布局顺序来书写头文件。
以下内容如果某些节不需要,可以忽略。
但是其它节要保持该次序。
头文件布局:
文件头(参见第三章“注释”)
#ifndef文件名_H(全大写)
#define文件名_H
其它条件编译选项
#include(依次为标准库头文件、非标准库头文件)
常量定义
全局宏
全局数据类型
类定义
模板(template)(包括C++中的类模板和函数模板)
全局函数原型
#endif
【规则2-1-2】遵循统一的布局顺序来书写实现文件。
实现文件布局:
常量定义
文件内部使用的宏
文件内部使用的数据类型
全局变量
本地变量(即静态全局变量)
局部函数原型
类的实现
全局函数
局部函数
【规则2-1-3】使用注释块分离上面定义的节。
正例:
/***********************************************************
*数据类型定义*
***********************************************************/
typedefunsignedcharBOOLEAN;
/*************************************************************
*函数原型*
************************************************************/
intDoSomething(void);
【规则2-1-4】头文件必须要避免重复包含。
可以通过宏定义来避免重复包含。
#ifndefMODULE_H
#defineMODULE_H
[文件体]
#endif
【规则2-1-5】包含标准库头文件用尖括号<
>
,包含非标准库头文件用双引号“”。
#include<
stdio.h>
#include“heads.h”
【规则2-1-6】遵循统一的顺序书写类的定义及实现。
类的定义(在定义文件中)按如下顺序书写:
公有属性
公有函数
保护属性
保护函数
私有属性
私有函数
类的实现(在实现文件中)按如下顺序书写:
构造函数
析构函数
公有函数
保护函数
私有函数
4.2基本格式
【规则2-2-1】程序中一行的代码和注释不能超过80列。
包括空格在内不超过80列。
【规则2-2-2】if、else、elseif、for、while、do等语句自占一行,执行语句不得紧跟其后。
不论执行语句有多少都要加{}。
这样可以防止书写失误,也易于阅读。
if(varible1<
varible2)
{
varible1=varible2;
}
反例:
下面的代码执行语句紧跟if的条件之后,而且没有加{},违反规则。
varible2)varible1=varible2;
【规则2-2-3】定义指针类型的变量,*应放在变量前。
float*pfBuffer;
float*pfBuffer;
〖建议2-2-1〗源程序中关系较为紧密的代码应尽可能相邻。
这样便于程序阅读和查找。
iLength =10;
iWidth =5;
//矩形的长与宽关系较密切,放在一起。
StrCaption =“Test”;
strCaption =“Test”;
4.3对齐
【规则2-3-1】禁止使用TAB键,必须使用空格进行缩进。
缩进为4个空格。
消除不同编辑器对TAB处理的差异,有的代码编辑器可以设置用空格代替TAB键。
【规则2-3-2】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。
{}之内的代码块使用缩进规则对齐。
这样使代码便于阅读,并且方便注释。
dowhile语句和结构的类型化时可以例外,while条件和结构名可与}在同一行。
voidFunction(intiVar)
{//独占一行并与引用语句左对齐。
while(condition)
DoSomething();
//与{}缩进4格
voidFunction(intiVar){
while(condition){
}}
【规则2-3-3】声明类的时候,public、protected、private关键字与分界符{}对齐,这些部分的内容要进行缩进。
classCCount
public:
//与{对齐
CCount(void);
//要进行缩进
~CCount(void);
intGetC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 中兴 编程 规范
![提示](https://static.bdocx.com/images/bang_tan.gif)