1 / 10
文档名称:

开发管理之代码编码规范.docx

格式:docx   大小:28KB   页数:10页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

开发管理之代码编码规范.docx

上传人:zhangshut 2022/5/18 文件大小:28 KB

下载得到文件列表

开发管理之代码编码规范.docx

文档介绍

文档介绍:.程序版式
对齐
程序块要采用缩进风格编写,缩进的空格数为4个。使用VC提供的Tab键对齐。
“{”和“}”应独占一行并且位于同一列,同时引用他们的语句对齐
{}之内的代码块在“{"右边数格外左对齐
例:
正确错误
voidFis拷贝
a=b=c;//如果用“值传递”,将产生两次*this拷贝
String的相加函数operate+的实现如下:
Stringoperate+(constString&s1,constString&s2){
Stringtemp;
delete;//是仅含‘0’的字符串
=newchar[strlen+strlen+1];
strcpy,;
strcat,;
returntemp;}
对于相加函数,应当用“值传递”的方式返回String对象。如果改用“引用传递”,那
么函数返回值是一个指向局部对象temp的“引用”。由于temp在函数结束时被自动销毁,
将导致返回的“引用”无效。例如:
c=a+b;
此时a+b并不返回期望值,c什么也得不到,流下了隐患。
尽量保持函数只有唯一出口
若函数返回状态,尝试用枚举作类型
当函数返回引用或指针时,用文字描述其有效性
禁止成员函数返回成员的引用或指针
函数内部规则
在函数体的“入口处”,对参数的有效性进行检查,应正确使用断言(assert),
断言assert是仅在Debug版本起作用的宏,它用于检查“不应该”发生的情况例:
void*memcpy(void*pvTo,constvoid*pvFrom,size_tsize){
assert((pvTo!=NULL)&&(pvFrom!=NULL));//使用断言
byte*pbTo=(byte*)pvTo;//防止改变pvTo的地址
byte*pbFrom=(byte*)pvFrom;//防止改变pvFrom的地址
while(size-->0)
*pbTo++=*pbFrom++;
returnpvTo;}
在函数的“出口处”,应对return语句的正确性和效率进行检查
return语句不可返回指向“找内存”(内部变量)的指针或引用,因为该内存在函
数体结束时被自动销毁
要搞清楚返回的究竟是值、指针,还是引用
如果函数返回值是一个对象,要考虑return语句的效率
通用规则
函数的功能要单一,不要设计多用途函数
函数体规模要小,尽量控制在100行代码以内,不包括注释和空格行
尽量避免函数带有记忆功能,相同的输入应当产生相同的输出(不用static变量)
示例:如下函数,其返回值(即功能)是不可预测的。unsignedintinteger_sum(unsignedintbase){unsignedintindex;staticunsignedintsum=0;//注意,是static类型的。
//若改为auto类型,则函数即变为可预测。
for(index=1;index<=base;index++){sum+=index;
}returnsum;
}
用于出错处理的返回值一定要清楚
引用的规则
a)引用被创建时同时被初始化
b)不能有NULL引用,引用必须与合法的存储单元关联
c)一旦引用被初始化,就不能改变引用的关系d)