上对于每个变量应该注释, 但 对于意义非常明显的变量,如:i,j等循环变量可以不注释。例如: long lLineCount; // 线的根数 3、文件的注释: 文件应该在文件开头加入版权声明以及头注释,例如:
// GeoHazard3DDoc.cpp: implementation of Class CGeoHazard3Ddoc //
版权所有(C) 2005 武汉地大坤迪科技有限公司。保留所有权利。 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //工 程: GeoHazard (文件所在的项目名) //作 者: 王麻子 //修改者: 李四 //描 述:
文档类的实现文件 //创建日期: 2004-3-11: 王麻子 // // // // //
武汉地大坤迪科技有限公司
//修改日期: 2005-7-18: 李四, 增加了函数…. //参考文献:
// //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
为了头文件被重复包含要求对头文件进行定义如下:
#ifndef __FILENAME_H__
#define __FILENAME_H__
其中FILENAME为头文件的名字。
4、其他注释:
在函数内我们不需要注释每一行语句。 但必须在各功能模块的每一主要部分之前添加块 注释,注释每一组语句,在循环、流程的各分支等,尽可能多加以注释。
其中的循环、条件、选择等位置必须注释。
对于前后顺序不能颠倒的情况,建议在注释中增加序号。
例如:
......
// 1、......注释
for (......)
{
}
if(......)
{// ......注释
}
else
{// ......注释
}
// ......注释
switch(......)
{
case: ......// ......注释
......
case: ......// ......注释
......
default: // ......注释
......
}
在其他顺序执行的程序中,每隔3—5行语句,必须加一个注释,注明这一段语句所组 成的小模块的作用。对于自己的一些比较独特的思想要求在注释中标明。
四、程序健壮性:
1、函数的返回值规范:
对于函数的返回位置,尽量保持单一性,即一个函数尽量做到只有一个返回位置。(单 入口单出口)。要求大家统一函数的返回值,所有的函数的返回值都将以编码的方式返回。
例如编码定义如下:
#define CM_POINT_IS_NULL CMMAKEHR(0X200)
建议函数实现如下:
武汉地大坤迪科技有限公司
long 函数名(参数,……) { long lResult; //保持错误号 lResult=CM_OK; // 如果参数有错误则返回错误号 if(参数==NULL) { lResult=CM_POINT_IS_NULL; goto END; } ?? END: return lResult; } 2、关于goto的应用: 我们要求尽量少用goto语句。对一定要用的地方要求只能向后转移。 3、资源变量的处理(资源变量是指消耗
系统资源的变量) :
对资源变量一定赋初值。分配的资源在用完后必须马上释放,并重新赋值。例:
long* plAllocMem; //定义一个分配内存的变量。
plAllocMem=(long*)calloc(40, sizeof( long )); //分配一段内存。
//处理分配内存错误
if(plAllocMem==NULL)
{
lResult=CM_MEM_ALLOC_FAILED;
goto END;
}
??
使用内存
??
// 释放资源变量,并重新赋值。
if(pAllocMem!=NULL)
{
free(plAllocMem);
pAllocMem=NULL;
}
4、对复杂的条件判断,为了程序的可读性,应该尽量使用括号。
例:if(((szFileName!=NULL)&;&;(lCount>=0)))||(bIsReaded==TRUE))
五、可移植性:
1、高质量的代码要求能够跨平台,所以我们的代码应该考虑到对不同的平台的支持, 特别是对windows98和windowsnt的支持。
2、由于C语言的移植性比较好,所以对算法函数要求用C代码,不能用C++代码。
3、对不同的硬件与软件的函数要做不同的处理。
武汉地大坤迪科技有限公司
六、错误处理:
1、