软件编码规范.doc
《软件编码规范.doc》由会员分享,可在线阅读,更多相关《软件编码规范.doc(14页珍藏版)》请在三一文库上搜索。
1、天正软件编码规范一、 命名规范1、 通则1.1、 在所有命名中,都应使用标准的英文单词或缩写,避免使用汉语拼音。1.2、 所有命名都应遵循达意原则,即名称应含义清晰、明确。1.3、 所有命名都不易过长,在可表达清晰的前提下越简洁越好。1.4、 所有命名都应尽量使用全称。1.5、 在类型名称特别复杂的时候,应使用typedef来定义别名。2、 标识符2.1、 标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。(较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写)如下单词的常用缩写applicat
2、ion appargument argaverage avgblock blkbuffer bufcommand cmdcontrol ctrldatabase dbdelete deldescription descdialog dlgdictionary dictdimension dimdistance distdocument docentity entescape escflag flgincrease incinformation infolength lenlibrary libmanager mgrmemory memmessage msgobject objpassword
3、pwdpicture picployline plinepointer ptrposition posrecord recreference refresource rscscreen scrserver srvsource srcsystem systemp tmptext txtversion verwindow wndVC+中常用控件缩写Animate aniCheck Box chkComboBox cmbEdit edtGroup Box grpListBox lstPicture picProgress prgPush Button btnRadio Button radScrol
4、l Bar sbSlider sldStatic stcTab Control tab14 / 14文档可自由编辑打印2.2、 长的标识符应使用缩写来缩短长度,而特短的标识符应该避免使用缩写。更恰当:int iFlagHMODULE hLoadedSysRsc不恰当:int iFlgHMODULE hLoadedSystemResource2.3、 变量和封装体命名中单词或缩写的第一个字母应大写,其它字母小写,单词和单词之间直接连接,不得有其它字符。在宏定义中全部用大写,单词与单词之间必须用下划线连接。正确:TempResource#define REG_KEY错误:Temp_Resource
5、 temp_resourcetempresource#define Reg_Key2.4、 除了编译开关/头文件等特殊应用,应避免使用_EXAMPLE_TEST_之类以下划线开始和结尾的定义。2.5、 对于变量命名,禁止取单个字符(如i、j、k.),命名除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k等作局部循环变量是允许的。2.6、 命名时,如果需要进一步分类时,分类属性应放在前面。正确:CListBox m_wndLstFonts;CComboBox m_wndCmbColors;错误:CListBox m_wndFontsLst;CComboBox m_wndColors
6、Cmb;2.7、 命名中若使用特殊约定或缩写,则要有注释说明。(应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明)2.8、 在命名规范中没有规定到的地方,才可以使用自己特有的命名风格,要自始至终保持一致,不可来回变化。2.9、 除非必要,不要用数字或较奇怪的字符来定义标识符。正确:#define EXAMPLE_TESTTestLockDriver错误:#define EXAMPLE_0Test1232.10、 在同一软件产品内,应规划好接口部分标识符的命名,防止编译、链接时产生冲突,可在普通标识基础上加上模块标识。示例:在TGRX模块中可定义为 CTG
7、RxObject g_rxRegistry在TGDB模块中可定义为 CTGDbBlockRecord g_dbGlobal在TGGui模块中可定义为 CTGUiFrameWnd g_uiCmdMgr2.11、 命名规范必须与所使用的系统风格保持一致,并在同一项目中统一,比如有关STL的代码应使用STL中的全小写加下划线的风格,有关MFC的代码则使用大小写混排的方式。3、 封装体3.1、 采用前缀和以大写开头的英文单词或缩写组成,即:前缀 + 标识符。简写 类型 说明C class 类S struct 结构体E enum 枚举U union 联合体示例:class CTree ;struct S
8、ResBuf ;enum ESeekType ;union UResVal;4、 变量4.1、 变量命名应遵循匈牙利记法,即:前缀 + 类型 + 标识符。4.2、 前缀简写 类型 说明m_ class member 类的成员变量s_ static variable 静态全局变量g_ global variable 普通全局变量注意:1、 struct/union中的成员变量不加前缀,即:类型 + 标识符2、 const成员变量应使用k + 标识符3、 enum中的成员应使用k + 标识符示例:m_arsName m_ls_cConfig s_iLoopTimesg_hResouce g_sMo
9、duleNamestruct STreeDataHICON hTreeIcon;TCHAR szTreeName;;class CVector3dconst CVector3d kIdentity;const CVector3d kXAxis;enum EDirectionkLeft,kRight,;enum EErrorStatuskOk,kOutOfMemory,;4.3、 类型基本类型简写 类型 说明by byte 字节b bool 布尔型n short 短整型n UINT 无符号整型i int 整型l long 长整型w WORD 双字节dw DWORD 四字节f float 浮点数d
10、 double 双精度数ch char 字符型sz char 以0结尾的字符串cr COLORREF color refpsz LPCTSTR const char*字符串指针psz LPTSTR char*字符串指针wnd window 窗口类fn function 函数p pointer 指针ar array 数组lst list 链表map map 影射e enum 枚举u union 联合c struct 一般的结构体c class 一般的类注意:1、 有的类型可以组合以表示复杂的数据类型,即:主数据类型 + 修饰类型2、 字符串指针char*、const char*应使用LPTSTR
11、LPCTSTR替代3、 在类型前加const,命名约定不变示例:byte byVal; BYTE byVal;bool bVal; BOOL bVal;short nVal; SHORT nVal;UINT nVal; CUIntArray arnVal;int iVal; INT iVal;long lVal; LONG iVal; ULONG lVal;WORD wVal; WORD g_wVal;DWORD dwVal; DWORD m_dwVal;float fVal; float& fVal;double dVal; double* pdVal;char chVal; TCHAR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 编码 规范
