欢迎来到天天文库
浏览记录
ID:22305679
大小:42.27 KB
页数:9页
时间:2018-10-28
《c++代码书写规范》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、标题C++代码书写规范DraftV0.32013.10.17文档管理日期版本作者注解2012.9.140.1创建文档9标题2013.3.110.2增加示例代码2013.10.170.3增加规范9标题目录1目的42命名规范43代码书写规范54反例89标题1目的为确保工程的进度,我们需要制定统一的代码书写和命名规范,以使整个工程的风格一致,让不同的团队成员可以方便地阅读别人写的代码,避免因代码书写不规范带来的麻烦。2命名规范(1)所有的文件名、类名、对象名称、函数名和变量名都要求具有明确的意义,尽量避免使用无意义的字母和数字的组合来命名。每个单词都用大写字母开头,尽量不要使用下划线。如:文件名:
2、IUpixImageFilter.h类名:classIUpixImageFilter;变量名:IUpixImageFilter*pImageFiler;函数名:staticIUpixImageFilter*CreateImageFilter(eUpixColorFormateType);(2)普通类名都冠以Upix前缀,如:templateclassUPIX_ALGORITHM_TEMPLATEUpixArray;(3)抽象接口类的名字一律以大写的I开头,再冠以Upix前缀。接口类头文件的名字也以大写的I开头,如:IUpixImageFilter.hclassIUpix
3、ImageFilter;(4)变量名采用匈牙利命名法,变量名之前必须加一个小写字母以标明它的数据类型。数据类型前缀指针p,数组可以不加intI或者nfloatfdoubled字符串str对象ovectorvmapmap如:9标题IUpixImageFilter*pImageFiler;intnSize;floatfScale;charstrFileName[256];vectorvIndices;(5)若非公开的成员变量,最好都加上前缀m_,指针用m_p,整数用m_n等,如:IUpixMeshCreater*m_pMeshCreater;intm_nSize;(6)每一个需要导出到
4、dll的类,都要在声明中加上一个class导出宏,例如在UpixAlgorithm中定义的导出宏为:#ifndefUPIX_ALGORITHM_EXPORTS#defineUPIX_ALGORITHM_API__declspec(dllimport)#defineUPIX_ALGORITHM_CLASS__declspec(dllimport)#defineUPIX_ALGORITHM_TEMPLATE#else//EXPORT#defineUPIX_ALGORITHM_API__declspec(dllexport)#defineUPIX_ALGORITHM_CLASS__declspec
5、(dllexport)#defineUPIX_ALGORITHM_TEMPLATE__declspec(dllexport)#endif那么在类中应该加上UPIX_ALGORITHM_CLASS,如:classUPIX_ALGORITHM_CLASSUpixException;(7)每一个需要导出到dll的模版类,都要在声明中加上一个template导出宏,如:templateclassUPIX_ALGORITHM_TEMPLATEUpixMatrix(8)每一个需要导出到dll的函数,都要在声明中加上一个API导出宏,如:voidUPIX_ALGORITHM_APIUpix
6、GetFileExtension(constchar*strPathName,char*strExt);1代码书写规范(1)所有函数在声明时必须加注释。实现函数时,逻辑复杂的地方必须注释清楚,其它地方视情况而定,以能读懂该段代码为准。如://BlurpImageSrcusingfastboxmethod9标题boolBoxBlur(constvoid*pImageSrc,void*pImageDst,intwidth,intheight,intradius);(2)头文件都用#ifndef和#endif包括起来,不要使用#pragmaonce,如:#ifndef_I_UPIX_MESH_CR
7、EATER_H_#define_I_UPIX_MESH_CREATER_H_……#endif(3)头文件中尽可能少包含别的头文件,能在*.cpp中包含的就不要在*.h中包含。如果实在需要在头文件中引用某个类,可以在头文件中单独声明该类,并用指针引用该类,这样就可以把该类的头文件放到*.cpp中去包含。如:在UpixObserver.h中:templateclassUPIX_ALGORITHM_
此文档下载收益归作者所有