C++编码规范
来源:互联网 发布:局域网教学广播软件 编辑:程序博客网 时间:2024/06/05 00:22
命名规则:
所有命名,都尽量做到“一目了然”,并且不要太过冗长。尤其要禁止含意和所实现的功能不一致的现象。含意上一般动名词也要注意,一般函数第一个单词尽量用动词
种类
示例
说明
文件名
RoleManager
以大写字母开头的单词拼接而成
类名
RoleMaterial
以大写字母开头的单词拼接而成
类成员变量
_roleId (私有)
RoleName (公有)
私有成员:以下划线开头,首字母小写,单词第一个字符大写
公有成员:以大写字母开头的单词拼接而成
类成员函数
_getRoleId (私有)
getRoleId (公有)
私有函数:首字母小写,单词第一个字符大写,下划线开头
公有函数:以大写字母开头的单词拼接而成,首字母小写
局部变量
roleName
单词第一个字符大写,首字母小写
函数参数
roleName
单词第一个字符大写,首字母小写
全局函数
getRoleInfo
下划线起头,以大写字母开头的单词拼接而成
全局变量
_RoleInfo
下划线起头,以大写字母开头的单词拼接而成
常量定义
ROLE_TYPE
全大写字母的单词,单词间以下划线连接
可变常量(系统参数等)
_MAX_USER
全大写字母的单词,单词间以下划线连接,整个变量以下划线开头
注释相关
共性:注释要随代码更新而变动,杜绝注释的描述和代码功能的不一致!所有注释统一都以双斜杠开头,注释尽可能单独占一行,尽量不要出现上百行都看不到一行注释的情况。
- 文件注释:写在文件最开头,注明文件中代码的作用以及注意点即可
- 函数注释:声明和实现处要一致,要和函数实现的功能相符合,不能一眼看出含意的参数要添加说明
- 代码行注释:尽可能地为每个for、while、if、else、switch都写上说明,一般在这些语句的地方,都是体现业务功能的地方。
缩进和空格
缩进用空格或者TAB键都可以,但单个文件内要统一,如果使用空格缩进,要注意,所有缩进要统一空格数量,一个缩进至少2个空格。
非缩进处的空格,不要出现两个空格连续在一起的情况
其它
大括号相关:for、while、if、else等语句,必须用大括号,且括号内的代码要单独占一行,以下是示例
for(int i=0;i<10;i++)a=1;
if(b=1)a=1;
else a=2;
不良
for(int i=0;i<10;i++)
a=1;
if(b=1)
a=1;
else
a=2;
不良
for(int i=0;i<10;i++)
{
a=1;
}
if(b=1)
{
a=1;
}
Else
}
a=2;
}
不良
for(int i=0;i<10;i++){
a=1;
}
if(1==b){
a=1;
}else if(2==b){
a=2;
}else{
a=3;
}
建议用这样的写法
关于第一个大括号{是否该另起一行,关系不大,个人建议不另起行,这样在代码行比较多的时候,一页可以看到更多的代码
局部变量尽可能地在用到的地方定义,省得一个比较大的函数在开头的地方出现过多的局部变量的定义
不要泛滥使用多层括号结构,如下面的两个函数实现的是同样的功能,红色部分是这个函数的主要处理逻辑,明显后面一种写法更清析,特别当红色块有更多行的代码时,更显得如此
不良
良
int TypeConvert(int p_type, int p_data){
if(p_type < 0){
return -1;
}else{
if(p_type < 100){
if(p_data > 0){
int ret = p_data / p_type;
……
return ret;
}else{
return -2;
}
}else{
return -3;
}
}
}
int TypeConvert(int p_type, int p_data){
if(p_type < 0){
return -1;
}
if(p_type < 100){
return -3;
}
if(p_data <= 0){
return -2;
}
int ret = p_data / p_type;
……
return ret;
}
不允许将两条语句写在一行中,如:
a=3;a=a*4;
判断语句:if、while中用到的判断比较,整型和布尔型要区别对待,用整型结果当作判断条件,如:
不良
良
int a=0;
if(a){
…
}
int a=0;
if(0 != a){
…
}
在比较等于的时候,如果有常量参与,尽量把常量写在前面,如:
if(a == 1) 写成 if(1 == a) 更好些
- 文件引用:尽可能地分出引用关系的层次,不要写成a引用b,b引用c,c又引用a
不到万不得已,不得使用goto- 能用整数运算,尽量避免浮点运算
- 共通的抽取:同一个业务,尽量写在一处,而不要写成多份拷贝,以便业务更改维护
- 日志:日志级别要清楚,错误、警告、普通、调试
最后:细心才能写出好代码,用心才能进步!
- 编码规范,objective-c编码规范
- C语言编码规范
- C/C++ 编码规范
- C#编码规范
- C#编码规范
- C/C++编码规范
- C编码规范
- C编码规范
- C/C++编码规范
- C/C++编码规范
- C/C++编码规范
- C语言编码规范
- C语言编码规范
- C语言编码规范
- objective-c 编码规范
- C/C++编码规范
- C语言编码规范
- c语言编码规范
- java读取数据库数据相同list值合并
- WinDbg 内核调试常用命令
- ANSI,ASCII,Unicode的区别与联系
- 基于JAVA的简易坦克大战(七)
- Hadoop 源代码分析(三)对象序列化
- C++编码规范
- 关于delphi7中Edit菜单栏中bring to Front 和 send to back 连个功能的使用。
- LUA语言参考
- Android UI--listview更改选中时item背景色
- ORACLE ora-00942 错误解决
- iOS动态库
- 一致性哈希算法及其在分布式系统中的应用
- adb root错误信息adbd cannot run as root in production builds问题解决
- Android Alarm驱动源代码分析(Alarm.c)