C/C++编程规范
来源:互联网 发布:java treemap 红黑树 编辑:程序博客网 时间:2024/05/25 19:59
1. 命名规范
1.1 一般命名规范
- C++命名规范包括文件命名规范和标识符命名规范
- 标识是指C++中语法对象的名字(常量名、变量名、函数名、类和类别名以及预处理名等),其基本语法是以字母开头,由字母数字和下划线组成。
- 标识符最好由两部分组成:标识前缀+含义标识。
- 标识前缀最好用不超过三个字母的缩写词组成,缩写最好全部大写。
- 含义标识由一个或多个单词组成时,一般不缩写,除非此缩写很常用。
1.2 文件命名规范
- 文件名必须由前缀和后缀组成,最好采用长文件命名格式。
- 文件名必须用英文字母表达,避免使用中文。
- 对于机构单词组合表达的文件名,每个单词第一个字母必须大写。
- 源文件后缀格式可以为.cpp,头文件后缀格式可以为.h。
- 每一个类最好都有一个头文件和源文件,头文件和源文件都必须与类名相对应。
例如:类CBufferControl对应BufferControl.h,BufferControl.cpp。
1.3 变量命名规范
- 变量命名格式必须是:scope_+prefix_+qualifer(范围前缀+类型前缀+含义标识)。
- 范围前缀的取名遵照下表:
- 当变量作为函数参数时,建议如下使用范围前缀:
i_:输入参数
o_:输出参数
io_:输入输出参数
1.4 函数命名规范
- 类成员函数命名规则最好是:函数的含义标识。
- 其它函数命名规则最好是:范围前缀_+函数返回置类型+函数的含义标识。
- 函数的含义标识必须能反映函数实现的功能。
- 函数的含义标识中第一个字母必须大写。
- 对于几个单词组合表达的函数的含义标识,每个单词第一个字母必须大写。
- 组合单词时最好采用动宾结构。如CheckErrors()。
1.5 类命名规范
- 类第一个字母必须为大写“C”。
- 对于几个单词组合表达的类名,每一个单词第一个字母需大写。
1.6 其他命名规范
- 常量中所有字母必须大写,单词间用“_”隔开。例如:const int A_GLOBAL_CONSTANT=4;
- 联合体类型命名的格式为“UN_含义标识”,含义标识全部大写,单词间用“_”隔开。
- 结构体类型命名的格式为“ST_含义标识”,含义标识全部大写,单词间用“_”隔开。
- 枚举类型命名的格式为“EN_含义标识”,含义标识全部大写,单词间用“_”隔开。
- 宏,所有字母必须大写,单词间用“_”隔开。
2. 注释规范
2.1 一般规范
- 注释的目的是解释代码的目的、功能和算法,提供代码以外的信息,帮助读者理解代码,禁止注释无关信息。
- 注释必须语言简练,明确易懂。
- 单行注释必须用双斜杠进行注释,多行注释必须用/**/,注释内容最好放在对应代码的上方。
- 注释与前面的执行语句之间必须空一行。
- 必须一边写代码一边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。
- 注释行数(不包括程序头和函数头说明部分)必须占总行数的1/5到1/3。
2.2 常量、变量和宏的注释
- 被保存值的定义(必选)
- 合法取值的范围(可选)
- 与其他数据,函数或模块的关系(可选)
例如:
//default quantilizer level, from 1 to 31.
const int DEFAULT_QL=8;
//number of gob, 12 for CIF and 3 for QCIF.
int nGob;
2.3 结构体和联合体的注释
- 他描述的对象是什么(必须)
- 对其分量应按变量注释要求加以注释(必须)
- 与其他数据,函数或模块的关系(可选)
例如:
//3D Point(nPosX, nPosY, nPosZ)
typedefstruct ST_ THREED_ PT_TAG{
int nPosX; //x Position
int nPosY; //y Position
intnPosZ; //z Position
}ST_ THREED_ PT;
2.4 函数的注释
- 对于比较重要的函数或方法必须在其声明处作适当注释,说明该函数的功能及参数的含义,注释模板如下:
//Get data pointer of sub image
Short* GetSubImageData(int i_nLeft, //Left position of sub image.
inti_nTop, //Top position of sub image.
WORD i_wWidth, //Width of sub image.
WORD i_wHeight); //Height of sub image.
- 对于自行编写的函数,若是系统关键函数,必须在函数实现部分的上方标明该函数的信息,格式如下:
/****************************************************
* 函数名:
* 功能描述:
* 返回值:
* 参数:(名称,含义,取值说明)
* 作者:
* 时间:
* 修改记录:(修改序号,日期,修改人员,修改说明)(在修改记录栏必须按时间先后顺序自下往上排列。)
*****************************************************/
/****************************************************
* Function Name:
* Description:
* Return Value:
* Parameters :(Name,Description,Value)
* Author:
* Date:
* Change log:(ID,Date,Author,Description)
*****************************************************/
注意:注释文本每行的跨度禁止超过上下条纹框的范围,换行时必须以冒号所在位置为准进行左对齐。
2.5 文件头部注释
- 在文件头部必须加注释表明该文件的一些信息,其格式如下:
/****************************************************
* 文件名 :
* 版本 : 如:1.0/0.8/0.7
* 功能描述 :
* 创建日期 :
* 作者 :
* 修改记录:(序号,修改说明,日期,修改人员)(在修改记录栏必须按时间先后顺序自下往上排列,修改记录中必须特别注明修改了哪些函数)
*****************************************************/
/****************************************************
* File Name :
* Version Number :
* Description :
* Date: * Author:
* Change log:(ID,Date,Author,Description)
*****************************************************/
- 注意:注释文本每行的跨度禁止超过上下条纹框的范围,换行时必须以冒号所在位置为准进行左对齐。
2.6 语句注释
- 对语句的注释必须放在其上方相邻位置,不要放在下面。
- 在程序块的结束行右方最好加注释标记,以表明某程序块的结束。
- 过长的函数实现,最好将其语句按实现的功能分段加以概括性说明。
- 必须对不易理解的分支条件表达式加注释。
- C++/C编程风格规范
- C/C++编程规范
- C/C++ 编程规范
- C#.NET编程规范
- C#.NET编程规范
- c语言编程规范
- c/c++编程规范
- c编程注意规范
- C 语言编程 规范
- C/C++编程规范
- C/C++ 编程规范
- C#.NET 编程规范
- C 编程规范要求
- C语言编程规范
- C语言编程规范
- C/C++编程规范
- C语言编程规范
- C语言编程规范
- jquery mobile学习总结
- 操作系统之进程调度
- 静态库和动态库
- jinja学习笔记
- windows自动运行程序与文件自动传输
- C/C++编程规范
- 201202007链接
- 品味生活,善待人生
- 写单元测试的好处
- hdu 1733 Escape
- 操作系统之银行家算法
- 转帖:鳥哥的 Linux 私房菜之第十五章、時間伺服器: NTP 伺服器
- JQuery 插件 jqDnr
- WPF弹出一个窗口,并自动关闭