C++编码规范Ver11.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C++编码规范Ver11.doc》由会员分享,可在线阅读,更多相关《C++编码规范Ver11.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流C+编码规范Ver11.精品文档. 文件编号:CEG011-1C+编码规范(Ver1.1)沈阳东软软件股份有限公司国际合作事业部文件修改控制修改记录编号修改状态修改页码及条款修改人审核人批准人修改日期1A3、变量命名规范,增加“静态变量作用域”范围前缀张军刘德启张进2002.4.182A3、变量命名规范,增加“short”类型前缀张军刘德启张进2002.4.183M四、函数编写规范,修改缩进规则张军刘德启张进2002.4.184M3、变量命名规范,在“当变量作为函数参数使用时,必须如下使用范围前缀”中将“必须”改为“建议”。张军刘德启张进20
2、02.4.185A在变量类型前缀的附注中增加“2、除以上规定外,WIN32变量的类型前缀的命名请尽量与微软的命名风格一致。”张军刘德启张进2002.4.186M在实例命名规范的示例中修改UN_MAP_INFO *m_pNextMapInfo; ST_LINK_LIST g_CurrentLinkList;为UN_MAP_INFO *m_punNextMapInfo; ST_LINK_LIST g_stCurrentLinkList;张军刘德启张进2002.4.18目 录一、命名规范41、一般规范42、文件命名规范43、变量命名规范44、实例命名规范55、函数数命名规范66、类命名规范77、其他
3、命名规范77.1、常量77.2、联合体77.3、结构体77.4、宏77.5、枚举8二、注释规范81、一般规范82、常量、变量和宏的注释83、结构体和联合体的注释94、函数的注释95、文件头部注释106、语句注释11三、文件编写规范11四、函数编写规范121、函数划分122、函数缩进123、其他13五、变量和常量使用规范14六、其他类型的使用规范14七、类的编写规范15八、可移植性规范15九、其他规范17术语说明:必须:解释为必须严格遵循的要求。 最好:解释为建议遵循的要求。可以:解释为可以选择遵循的要求。 禁止:解释为必须严格禁止遵循的要求。一、命名规范1、一般规范 C+命名规范包括文件命名规
4、范和标识命名规范。 标识是指C+语言中语法对象的名字, 包括常量名、变量名、函数名、类和类型名及预处理名等, 标识名的基本语法必须是以字母开始,由字母、数字及下划线组成的单词。 标识名最好分为两部分: 标识前缀+含义标识。 标识前缀必须由1个或多个不超过3个字母的缩写词组成。在有些情况下标识名中可以不含标识前缀。 含义标识按其应用的含义可以由一个或多个词组成. 含义标识中的词最好不缩写, 除非这种缩写比较通用, 禁止在同一系统中对同一单词使用不同的表示法(如全写和缩写均使用). 缩写词在书写时最好全部大写.2、文件命名规范 文件名必须由前缀和后缀组成,最好采用长文件命名格式。 文件名必须用英文
5、字母表达,禁止使用中文。 对于几个单词组合表达的文件名,每个单词第一个字母必须大写。 源文件后缀格式可以为.cpp或.cxx,头文件后缀格式可以为:.h,.hxx。例:ScreenCapturer.h,H263Encoder.cpp 每一个类最好都有一个头文件和源文件,头文件和源文件的前缀必须与类名相对应。例:类CBufferControl对应BufferControl.h,BufferControl.cpp 类CVideoFrame对应VideoFrame.h,VideoFrame.cpp 3、变量命名规范 变量命名格式必须是:变量名= + + 。 范围前缀 类型前缀 含义标识 范围前缀的取
6、名必须遵照下表:前缀类型例子g_全局作用域g_Serversm_成员变量m_pDoc,l_局部作用域l_strNames_静态变量作用域s_strName注:局部作用域前缀可以省略不用 类型前缀的取名必须遵照下表:前缀类型描述例子chchar8-bit characterchGradechTCHAR16-bit character if _UNICODE is definedchNamebBOOLBoolean valuebEnablednintInteger (size dependent on operating system)nLengthnUINTUnsigned value (siz
7、e dependent on operating system)nLengthsshort16-bit IntegersLengthwWORD16-bit unsigned valuewPoslLONG32-bit signed integerlOffsetdwDWORD32-bit unsigned integerdwRangep*Ambient memory model pointerpDoclpFAR*Far pointerlpDoclpszLPSTR32-bit pointer to character stringlpszNamelpszLPCSTR32-bit pointer to
8、 constant character stringlpszNamelpszLPCTSTR32-bit pointer to constant character string if _UNICODE is definedlpszNamehhandleHandle to Windows objecthWndlpfn(*fn)()callbackFar pointer to CALLBACK functionlpfnAbortffloatfloat VariablefSpeedRateddoubledouble VariabledSpeedRateststruct struct Variable
9、stParaInfoununionunion VariableunWeekDayfpFILE*file pointerfpTimecconstconst VariableType VariablecnVariablesz char *null-terminated stringszVariablepv void *Pointer to void typepvVariable注:1、当变量作为函数参数使用时,建议如下使用范围前缀: i _:输入参数 o_:输出参数 io_:输入输出参数例:void CHash:Compute(int* io_pnData,int i_nLen,int* o_pn
10、Ret);2、除以上规定外,WIN32变量的类型前缀的命名请尽量与微软的命名风格一致。4、实例命名规范 这里的实例主要指类、结构体和联合体的实例。 实例命名格式必须为:范围前缀+p+辅助信息+含义标识其中,范围前缀同变量的范围前缀,辅助信息主要说明实例的一些具体信息,含义标识指对应类、结构体或联合体的含义标识或其缩写,若实例为指针形式必须加p。例: CH263Encoder *m_pH263Encoder; CConfigDlg g_NewConfigDlg;UN_MAP_INFO *m_punNextMapInfo; ST_LINK_LIST g_stCurrentLinkList; 常用W
11、indows对象名称缩写Windows对象例子变量MFC类例子对象WNDhWnd;CWnd*pWnd; HDLGhDlg;CDialog*pDlg; HDChDC;CDC*pDC; HGDIOBJhGdiObj;CGdiObject*pGdiObj; HPENhPen;CPen*pPen; HBRUSHhBrush;CBrush*pBrush; HFONThFont;CFont*pFont; HBITMAPhBitmap;CBitmap*pBitmap; HPALETTEhPalette;CPalette*pPalette; HRGNhRgn;CRgn*pRgn; HMENUhMenu;CMe
12、nu*pMenu; HWNDhCtl;CStatic*pStatic; CButton*pBtn; CEdit*pEdit; CListBox*pListBox; CComboBox*pComboBox实际使用时必须加进范围前缀和辅助信息等。例: HWND g_hMainWnd, g_hChildWnd; CBitmap * m_pOldBitmap; CBitmap * m_pNewBitmap;5、函数数命名规范 类成员函数命名规则最好是:函数名=函数的含义标识 其他函数命名规则最好是:函数名=范围前缀_+函数返回值类型+函数的含义标识 函数名的范围前缀可以用来表明函数所属的模块类别。例:
13、 ui_nShowErrorMsg(), ui表明该函数属于界面模块。 函数的含义标识必须能反映函数实现的功能。 函数的含义标识中第一个字母必须大写。 对于几个单词组合表达的函数的含义标识,每个单词第一个字母必须大写。例1:CheckForErrors()优于ErrorCheck(), DumpDataToFile()优于DataFile().例2:IsHitRetryLimit(), RetryMax(), RetryCnt()等函数名切实反映了其实现的功能6、类命名规范 类名中第一个字母必须为大写“C”。 对于几个单词组合表达的类名,每个单词第一个字母必须大写。例:用CTransmitte
14、r而不用Transmitter。 在类名中最好通过使用前缀来防止类名冲突,前缀可以由2个或2个以上的唯一字符组成,前缀必须放在大写字母“C”后。例:class CICDLinkList ; class CAPNLinkList ;7、其他命名规范7.1、常量 常量名中所有字母必须大写,单词间必须用“_”相隔。例:const int A_GLOBAL_CONSTANT= 5;7.2、联合体 联合体类型命名的规则必须是:联合体名=UN_+含义标识。 联合体含义标识中所有字母必须大写,单词间必须用“_”相隔。7.3、结构体 结构体类型命名的规则必须是: 结构体名=ST_+含义标识。 结构体含义标识中
15、所有字母必须大写,单词间必须用“_”相隔。7.4、宏 所有字母必须大写,单词间必须用“_”相隔。 例:define ENCODING_TIME_TESTING7.5、枚举 枚举名必须加前缀EN_且枚举名中所有字母必须大写,单词间必须用“_”相隔。 枚举的成员变量所有字母必须大写,单词间必须用“_”相隔 例: enum EN_PIN_STATEPIN_OFF, PIN_ON; enum STATE_ERR, STATE_OPEN, STATE_RUNNING, STATE_DYING;二、注释规范1、一般规范 注释的目的必须是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码
16、,禁止没必要的重复注释信息。 注释必须语言简炼、易懂而又准确, 所采用的语种必须按“日文-英文-中文”从高到低的优先级顺序进行选择。 单行注释必须用双斜杠进行注释,多行注释必须用/* */进行注释,注释内容最好放在对应代码的上方。 注释与前面的执行语句之间必须空一行。 必须边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。 注释行数(不包括程序头和函数头说明部分)必须占总行数的 1/5 到 1/3 。2、常量、变量和宏的注释 在常量、变量(临时变量除外)和宏的声明前必须对其作适当注释, 注释说明的要点是:被保存值的含义(必须)合法取值的范围(可选)与其它数据,函数或模块的关
17、系(可选)例:/ default quantilizer level,from 1 to 31. const int DEFAULT_QL=8/ number of gob,12 for CIF and 3 for QCIF .int nGob;3、结构体和联合体的注释 对结构体或联合体的注释要点必须是:它描述的对象是什么(必须) 对其分量应按变量注释要求加以注释(必须)与其它数据, 函数或模块的关系(可选) 例:/3D Point( nPosX , nPosY , nPosZ )typedef struct ST_ THREED_ PT_TAG int nPosX; /x Positioni
18、nt nPosY; /y Positionint nPosZ; /z Position ST_THREED_ PT;4、函数的注释 对于比较重要的函数或方法必须在其声明处作适当注释, 说明该函数的功能及各参数的含义,注释模版如下:/ Get data pointer of sub image short* GetSubImageData (int i_nLeft, / Left position of sub image . int i_nTop, / Top position of sub image . WORD i_wWidth, / Width of sub image . WORD
19、i_wHeight); / Height of sub image . 对于自行编写的函数,若是系统关键函数,必须在函数实现部分的上方标明该函数的信息,格式如下:(中文版)* 函数名 :* 功能描述 :* 返回值 :* 参数 :(名称,含义,取值说明)* 作者 :* 时间 :* 修改记录 :(修改序号,修改记录,时间,修改人员)/(将函数的简单描述放在这里)(英文版) * Function Name :* Description :* Return Value :* Parameters :(Name,Description,Value)* Author :* Date :* Change l
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 编码 规范 Ver11
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内