文档介绍:天正软件编码规范命名规范通则在所有命名中,都应使用标准的英文单词或缩写,避免使用汉语拼音。所有命名都应遵循达意原则,即名称应含义清晰、明确。所有命名都不易过长,在可表达清晰的前提下越简洁越好。所有命名都应尽量使用全称。在类型名称特别复杂的时候,应使用typedef来定义别名。标识符标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。(较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写)mandcmdcontrolctrldatabasedbdeletedeldescriptiondescdialogdlgdictionarydictdimensiondimdistancedistdocumentdocentityentescapeescflagflgincreaseincinformationinfolengthlenlibrarylibmanagermgrmemorymemmessagemsgobjectobjpasswordpwdpicturepicploylineplinepointerptrpositionposrecordrecreferencerefresourcerscscreenscrserversrvsourcesrcsystemsystemptmptexttxtversionverwindowwndVC++boBoxcmbEditedtGroupBoxgrpListBoxlstPicturepicProgressprgPushButtonbtnRadioButtonradScrollBarsbSlidersldStaticstcTabControltab长的标识符应使用缩写来缩短长度,而特短的标识符应该避免使用缩写。更恰当:intiFlagHMODULEhLoadedSysRsc不恰当:intiFlgHMODULEhLoadedSystemResource变量和封装体命名中单词或缩写的第一个字母应大写,其它字母小写,单词和单词之间直接连接,不得有其它字符。在宏定义中全部用大写,单词与单词之间必须用下划线连接。正确:TempResource#defineREG_KEY错误:Temp_Resourcetemp_resourcetempresource#defineReg_Key除了编译开关/头文件等特殊应用,应避免使用_EXAMPLE_TEST_之类以下划线开始和结尾的定义。对于变量命名,禁止取单个字符(如i、j、k...),命名除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k等作局部循环变量是允许的。命名时,如果需要进一步分类时,分类属性应放在前面。正确:omboBoxm_wndCmbColors;错误:omboBoxm_wndColorsCmb;命名中若使用特殊约定或缩写,则要有注释说明。(应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明)在命名规范中没有规定到的地方,才可以使用自己特有的命名风格,要自始至终保持一致,不可来回变化。除非必要,不要用数字或较奇怪的字符来定义标识符。正确:#defineEXAMPLE_TESTTestLockDriver错误:#defineEXAMPLE_0Test123在同一软件产品内,应规划好接口部分标识符的命名,防止编译、链接时产生冲突,可在普通标识基础上加上模块标识。示例:在TGRX模块中可定义为CTGRxObjectg_rxRegistry在TGDB模块中可定义为CTGDbBlockRecordg_dbGlobal在TGGui模块中可定义为CTGUiFrameWndg_uiCmdMgr命名规范必须与所使用的系统风格保持一致,并在同一项目中统一,比如有关STL的代码应使用STL中的全小写加下划线的风格,有关MFC的代码则使用大小写混排的方式。封装体采用前缀和以大写开头的英文单词或缩写组成,即:前缀+标识符。lass类Sstruct结构体Eenum枚举Uunion联合体示例:classCTree{};structSResBuf{};enumESeekType{};unionUResVal{};变量变量命名应遵循匈牙利记法,即:前缀+类型+标识符。前缀简写类型说明示例:m_classmember类的成员变量s_staticvariable静态全局变量g_globalvariable普通全局变量注意:struct/union中的成员变量不加前缀,即:类型+标识符const成员变量应使用k+标识符enum中的成员应使用k+onfigs_iLoopTimesg_hResouceg_sModuleNamestructSTreeD