《高质量C++/C编程指南》代码规范笔记
2016-05-05 21:04
447 查看
今天查看了一下编程规范,无意中搜索到林锐博士的 《高质量C++/C编程指南》,这对编程挺有帮助的,特意做了一下笔记
第2章 程序的版式
2.1空行
2-1-1 在每个类和函数结束之后加空行
2-2-1 在函数体内,逻辑密切语句不加,其它地方加空行分隔
2-2-1 一行代码只定义一个变量或一条语句
2-2-2 if 、for、while、do等语句自占一行,执行语句不得紧跟,后面都要有{}
2-2-3 尽可能定义变量就同时初始化 如: int width = 10;
2.3 代码内的空格
2-3-1 关键字后留空格,如case 、const,像if、for、while等关键字之后留一个空格再跟左括号“(”,突出关键字
2-3-1函数名之后不留空格,紧跟左括号“(”,与关键字区别
2-3-3“(”向后紧跟 “)”、“,”、“;”像前紧跟,紧跟处不留空格
2-3-4“,”之后要留空格,如Fun(x, y, z).如果“;”不是一行的结束符号,其后要留空格,如for(int i; i<10; i++)
2-3-5 赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=、+=、>=、+、*等二元操作符的前后应当加空格
2-3-6 一元操作符如!~ ++ -- &()地址运算符)等前后不加空格
2-3-7像 [ ] . ->等这类操作符前后不加空格
2、5长行拆分
2-5-1代码最长控制在70-80字符内
2、6修饰符的位置
2-6-1应当将修饰符*和&紧靠变量名
如: char *name ;
int *x, y;
2、7类的版式
2-7-1建议以行为为中心,即为public类型的函数写在前面,private的类型数据写在后面
第3章 命名规则
3.1共性规则
3-1-3命名规则尽量与所采用的操作系统风格一致,如windows的AddChild和 Unix的add_child保持一致,不要混用
3-1-4程序不要出现大小写区分的标识符
3-1-5不要出现标识符一致的局部和全局变量
3-1-6变量最好位形容词+名词
3-1-7全局函数的名字使用动词或者动词+名词,类的成员函数只使用动词
3-1-8避免出现数字编号,如valude1、value2等,除非逻辑需要
第四章 表达式和基本语句
4-1-1如果代码行中的运算符比较多,使用括号确定表达式的顺序
第6章 函数设计
6-1-1参数的书写要完整
void Fun(int a, int b); //良好的风格
void Fun(int , int ); //不良
float Fun(void); //良好的风格
float Fun();// 不良
6-1-2参数的命名要合理,如不要出现char *str1和char *str2
6-1-3如果参数时指针,且仅为输入的作用,则应在类型加const ,防止该指针在函数内被修改
6-1-4如果输入参数以值传递的方式传递对象,则应该用const& 方式来传递,这样可以省去临时对象的构造和析构的过程
6-1-5避免参数太多
6.2返回值的规则
6-2-1不要省略返回值的类型
6-2-2函数名字的返回值类型在语义上不可冲突
待续。。。。。
第2章 程序的版式
2.1空行
2-1-1 在每个类和函数结束之后加空行
2-2-1 在函数体内,逻辑密切语句不加,其它地方加空行分隔
2-2-1 一行代码只定义一个变量或一条语句
2-2-2 if 、for、while、do等语句自占一行,执行语句不得紧跟,后面都要有{}
2-2-3 尽可能定义变量就同时初始化 如: int width = 10;
2.3 代码内的空格
2-3-1 关键字后留空格,如case 、const,像if、for、while等关键字之后留一个空格再跟左括号“(”,突出关键字
2-3-1函数名之后不留空格,紧跟左括号“(”,与关键字区别
2-3-3“(”向后紧跟 “)”、“,”、“;”像前紧跟,紧跟处不留空格
2-3-4“,”之后要留空格,如Fun(x, y, z).如果“;”不是一行的结束符号,其后要留空格,如for(int i; i<10; i++)
2-3-5 赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=、+=、>=、+、*等二元操作符的前后应当加空格
2-3-6 一元操作符如!~ ++ -- &()地址运算符)等前后不加空格
2-3-7像 [ ] . ->等这类操作符前后不加空格
2、5长行拆分
2-5-1代码最长控制在70-80字符内
2、6修饰符的位置
2-6-1应当将修饰符*和&紧靠变量名
如: char *name ;
int *x, y;
2、7类的版式
2-7-1建议以行为为中心,即为public类型的函数写在前面,private的类型数据写在后面
第3章 命名规则
3.1共性规则
3-1-3命名规则尽量与所采用的操作系统风格一致,如windows的AddChild和 Unix的add_child保持一致,不要混用
3-1-4程序不要出现大小写区分的标识符
3-1-5不要出现标识符一致的局部和全局变量
3-1-6变量最好位形容词+名词
3-1-7全局函数的名字使用动词或者动词+名词,类的成员函数只使用动词
3-1-8避免出现数字编号,如valude1、value2等,除非逻辑需要
第四章 表达式和基本语句
4-1-1如果代码行中的运算符比较多,使用括号确定表达式的顺序
第6章 函数设计
6-1-1参数的书写要完整
void Fun(int a, int b); //良好的风格
void Fun(int , int ); //不良
float Fun(void); //良好的风格
float Fun();// 不良
6-1-2参数的命名要合理,如不要出现char *str1和char *str2
6-1-3如果参数时指针,且仅为输入的作用,则应在类型加const ,防止该指针在函数内被修改
6-1-4如果输入参数以值传递的方式传递对象,则应该用const& 方式来传递,这样可以省去临时对象的构造和析构的过程
6-1-5避免参数太多
6.2返回值的规则
6-2-1不要省略返回值的类型
6-2-2函数名字的返回值类型在语义上不可冲突
待续。。。。。
相关文章推荐
- PAT (Advanced Level) Practise 1102 Invert a Binary Tree PAT 1102 坑点
- leetcode 92 Reverse Linked List II C++
- C语言内存分配方式
- More Effective C++----异常 & (9)使用析构函数防止资源泄漏
- C++中引用类型
- [Assignment] C++1
- 【C/C++】类中的static成员、static const成员和const成员
- [C/C++] main函数执行前后还会发生什么
- Effective C++ 改善程序与设计的55个具体做法之条款37
- C语言中字符串的格式化
- c语言
- C++异常
- hashtable笔记 c++
- 数组型队列(queue)的使用(支持自定义数据类型)(C++版)
- Leetcode 17. Letter Combinations of a Phone Number
- C++第五次实验-项目1:数组分离
- leetcode 206 Reverse Linked List C++
- 标准C++中的string类的用法总结
- Effective C++ 改善程序与设计的55个具体做法之条款33
- C++中 #ifdef 和#endif的作用