代码规范文档

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录1编程风格.......................................................................................................................................11.1统一编程风格的意义........................................................................................................11.2变量命名的规则................................................................................................................11.3函数的命名规范................................................................................................................31.4函数参数规范....................................................................................................................31.5引出函数规范....................................................................................................................41.6注释规范.............................................................................................................................42代码组织.......................................................................................................................................53代码优化.......................................................................................................................................63.1代码优化的意义................................................................................................................63.2代码优化的方法.................................................................................................................64调试技巧.......................................................................................................................................74.1静态检查.............................................................................................................................74.2上机调试............................................................................................................................74.3C语言常见问题.................................................................................................................81编程风格1.1统一编程风格的意义增加开发过程代码的强壮性、可读性、易维护性减少有经验和无经验开发人员编程所需的脑力工作为软件的良好维护性打下好的基础在项目范围内统一代码风格通过人为以及自动的方式对最终软件应用质量标准使新的开发人员快速适应项目氛围支持项目资源的复用:允许开发人员从一个项目区域(或子项目团队)移动到另一个,而不需要重新适应新的子项目团队的氛围一个优秀而且职业化的开发团队所必需的素质1.2变量命名的规则①变量的命名规则要求用“匈牙利法则”。即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。即:变量名=变量类型+变量的英文意思(或缩写)对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。见下表:bool(BOOL)用b开头bIsParentbyte(BYTE)用by开头byFlagshort(int)用n开头nStepCountlong(LONG)用l开头lSumchar(CHAR)用c开头cCountfloat(FLOAT)用f开头fAvgdouble(DOUBLE)用d开头dDetavoid(VOID)用v开头vVariantunsignedint(WORD)用w开头wCountunsignedlong(DWORD)用dw开头dwBroadHANDLE(HINSTANCE)用h开头hHandleDWORD用dw开头dwWordLPCSTR(LPCTSTR)用str开头strString用0结尾的字符串用sz开头szFileName对未给出的变量类型要求提出并给出命名建议给技术委员会。②、指针变量命名的基本原则为:对一重指针变量的基本原则为:“p”+变量类型前缀+命名如一个float*型应该表示为pfStat对多重指针变量的基本规则为:二重指针:“pp”+变量类型前缀+命名三重指针:“ppp”+变量类型前缀+命名③、全局变量用g_开头,如一个全局的长型变量定义为g_lFailCount,即:变量名=g_+变量类型+变量的英文意思(或缩写)④、静态变量用s_开头,如一个静态的指针变量定义为s_plPerv_Inst,即:变量名=s_+变量类型+变量的英文意思(或缩写)⑤、成员变量用m_开头,如一个长型成员变量定义为m_lCount;即:变量名=m_+变量类型+变量的英文意思(或缩写)⑥、对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀。并且要求用大写。如:enumcmEMDAYS{EMDAYS_MONDAY;EMDAYS_TUESDAY;……};⑦、对struct、union、class变量的命名要求定义的类型用大写。并要加上前缀,其内部变量的命名规则与变量命名规则一致。结构一般用S开头如:structScmNPoint{intnX;//点的X位置intnY;//点的Y位置};联合体一般用U开头如:unionUcmLPoint{longlX;longlY;}类一般用C开头如:classCcmFPoint{public:floatfPoint;};对一般的结构应该定义为类模板,为以后的扩展性考虑如:templateclassCcmTVector3d{public:TYPEx,y,z;};⑧、对常量(包括错误的编码)命名,要求常量名用大写,常量名用英文表达其意思。如:#defineCM_FILE_NOT_FOUNDCMMAKEHR(0X20B)其中CM表示类别。⑨、对const的变量要求在变量的命名规则前加入c_,即:c_+变量命名规则;例如:constchar*c_szFileName;1.3函数的命名规范函数的命名应该尽量用英文表达出函数完成的功能。遵循动宾结构的命名法则,函数名中动词在前,并在命名前加入函数的前缀,函数名的长度不得少于8个字母。例如:longcmGetDeviceCount(……);1.4函数参数规范①、参数名称的命名参照变量命名规范。②、为了提高程序的运行效率,减少参数占用的堆栈,传递大结构的参数,一律采用指针或引用方式传递。③、为了便于其他程序员识别某个指针参数是入口参数还是出口参数,同时便于编译器检查错误,应该在入口参数前加入const标志。如:…cmCopyString(constchar*c_szSource,char*szDest)1.5引出函数规范对于从动态库引出作为二次开发函数公开的函数,为了能与其他函数以及Windows的函数区分,采用类别前缀+基本命名规则的方法命名。例如:在对动态库中引出的一个图象编辑的函数定义为imgFunctionname(其中img为image缩写)。现给出三种库的命名前缀:①、对通用函数库,采用cm为前缀。②、对三维函数库,采用vr为前缀。③、对图象函数库,采用img为前缀。④、对宏定义,结果代码用同样的前缀。1.6注释规范1)、函数头的注释对于函数,应该从“功能”,“参数”,“返回值”、“主要思路”、“调用方法”、“日期”六个方面用如下格式注释://程序说明开始//================================================================////功能:从一个String中删除另一个String。//参数:strByDelete,strToDelete//(入口)strByDelete:被删除的字符串(原来的字符串)//(出口)strToDelete:要从上个字符串中删除的字符串。//返回:找到并删除返回1,否则返回0。(对返回值有错误编码的要//求列出错误编码)。//主要思路:本算法主要采用循环比较的方法来从strByDelete中找到//与strToDelete相匹配的字符串,对多匹配strByDelete//中有多个strToDelete子串)的情况没有处理。请参阅://书名......//================================================================//函数名(……)//程序说明结束①、对于某些函数,其部分参数为传入值,而部分参数为传出值,所以对参数要详细说明该参数是入口参数,还是出口参数,对于某些意义不明确的参数还要做详细说明(例如:以角度作为参数时,要说明该角度参数是以弧度(PI),还是以度为单位),对既是入口又是出口的变量应该在入口和出口处同时标明。等等。②、函数的注释应该放置在函数的头文件中,在实现文件中的该函数的实现部分应该同时放置该注释。③、在注释中应该详细说明函数的主要实现思路、特别要注明自己的一些想法,如果有必要则应该写明对想法产生的来由。对一些模仿的函数应该注释上函数的出处。④、在注释中详细注明函数的适当调用方法,对于返回值的处理方法等。在注释中要强调调用时的危险方面,可能出错的地方。⑤、对日期的注释要求记录从开始写函数到结束函数的测试之间的日期。⑥、对函数注释开始到函数命名之间应该有一组用来标识的特殊字符串。如果算法比较复杂,或算法中的变量定义与位置有关,则要求对变量的定义进行图解。对难以理解的算法能图解尽量图解。2)、变量的注释:对于变量的注释紧跟在变量的后面说明变量的作用。原则上对于每个变量应该注释,但对于意义非常明显的变量,如:i,j等循环变量可

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功