没有合适的资源?快使用搜索试试~ 我知道了~
首页C++编程质量提升全攻略
"《高质量C++编程指南》是一本经典的C++编程教程,由林锐博士编著,完成于2001年7月24日,适用于学习C++的开发者。该指南详细阐述了C++编程的最佳实践,涵盖了从文件结构、程序版式、命名规则到高级主题如表达式、函数设计、内存管理等核心内容。 在文件结构部分,作者强调了版权声明的重要性,并指导读者理解头文件的结构和定义文件的组织,以及如何构建合理的目录结构,以支持模块化编程。程序版式方面,作者关注代码的清晰度,包括空行、代码缩进、对齐、长行拆分以及注释的使用,这些都是提升代码可读性和维护性的关键。 章节3介绍了命名规则,包括通用的命名原则,以及针对Windows和UNIX应用的不同命名策略。在表达式和基本语句部分,作者解释了运算符的优先级、复合表达式的构造、条件语句(如IF、FOR和SWITCH)的使用,以及GOTO语句的谨慎运用,强调了高效和清晰的编程风格。 常量管理是该书的一个重点,讨论了常量的必要性、CONST和DEFINE的区别,以及在类中定义常量的规则。函数设计部分,作者详细阐述了参数传递的规范、返回值的处理、以及函数内部实现的注意事项,同时推荐使用断言来增强代码健壮性,并对比了引用和指针的概念。 最后,内存管理章节探讨了如何有效地管理和释放内存,这对于避免内存泄漏和提高程序性能至关重要。整体而言,《高质量C++编程指南》不仅是一本技术手册,也是一部关于编写高质量、可维护C++代码的实用指南,对于C++初学者和进阶开发者来说都具有很高的参考价值。"
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/10564116/bg10.jpg)
高质量 C++/C 编程指南, v 1.0
2001 Page 16 of 101
2
2
2
2 .2
.2
.2
.2 代码行
�
�
�
�
【规则 2
2
2
2 -
-
-
- 2
2
2
2 -1
-1
-1
-1 】 一行代码只做一件事情 , 如只定义一个变量 , 或只写一条语句 。 这样
的代码容易阅读,并且方便于写注释。
�
�
�
� 【规则 2
2
2
2 -
-
-
- 2
2
2
2 -2
-2
-2
-2 】 if 、 for 、 while 、 do 等语句自占一行,执行语句不得紧跟其后。不论
执行语句有多少都要加 {} 。这样可以防止书写失误。
示例 2-2 ( a )为风格良好的代码行,示例 2-2 ( b )为风格不良的代码行。
int width; // 宽度
int height; // 高度
int depth; // 深度
int width, height, depth; // 宽度高度深度
x = a + b;
y = c + d;
z = e + f;
X = a + b; y = c + d; z = e + f;
if (width < height)
{
dosomething();
}
if (width < height) dosomething();
for (initialization; condition; update)
{
dosomething();
}
// 空行
other();
for (initialization; condition; update)
dosomething();
other();
示例 2-2(a) 风格良好 的代码行 示例 2- 2 (b) 风格不良 的代码行
【建议 2
2
2
2 -
-
-
- 2
2
2
2 -1
-1
-1
-1 】 尽可能在定义变量的同时初始化该变量(就近原则)
如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用
了未被初始化的变量,可能会导致程序错误。本建议可以减少隐患。例如
int width = 10; // 定义并初绐化 width
int height = 10; // 定义并初绐化 height
int depth = 10; // 定义并初绐化 depth
![](https://csdnimg.cn/release/download_crawler_static/10564116/bg11.jpg)
高质量 C++/C 编程指南, v 1.0
2001 Page 17 of 101
2
2
2
2 .3
.3
.3
.3 代码行内的空格
【规则 2
2
2
2 -
-
-
- 3
3
3
3 -1
-1
-1
-1 】 关键字之后要留空格。象 const 、 virtual 、 inline 、 case 等关键字之后
至少要留一个空格 , 否则无法辨析关键字 。 象 if 、 for 、 while 等关键字之后应留一个
空格再跟左括号 ‘ ( ’ ,以突出关键字。
【规则 2
2
2
2 -
-
-
- 3
3
3
3 -
-
-
- 2
2
2
2 】 函数名之后不要留空格,紧跟左括号 ‘ ( ’ ,以与关键字区别。
【规则 2
2
2
2 -
-
-
- 3
3
3
3 -
-
-
- 3
3
3
3 】 ‘ ( ’ 向后紧跟 , ‘ ) ’ 、 ‘ , ’ 、 ‘ ; ’ 向前紧跟,紧跟处不留空格。
【规则 2
2
2
2 -
-
-
- 3
3
3
3 -
-
-
- 4
4
4
4 】 ‘ , ’ 之后要留空格,如 Function(x, y, z) 。如果 ‘ ; ’ 不是一行的结束
符号,其后要留空格,如 for (initialization; condition; update) 。
【规则 2
2
2
2 -
-
-
- 3
3
3
3 -
-
-
- 5
5
5
5 】 赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符
,
如 “ = ” 、 “ += ” “ >= ” 、 “ <= ” 、 “ + ” 、 “ * ” 、 “ % ” 、 “ && ” 、 “ || ” 、 “ << ” , “
^
” 等二元
操作符的前后应当加空格。
【规则 2
2
2
2 -
-
-
- 3
3
3
3 -
-
-
- 6
6
6
6 】 一元操作符如 “ ! ” 、 “ ~ ” 、 “ ++ ” 、 “ -- ” 、 “ & ” ( 地址运算符 ) 等前后不
加空格。
【规则 2
2
2
2 -
-
-
- 3
3
3
3 -
-
-
- 7
7
7
7 】 象 “ [ ] ” 、 “ . ” 、 “ -> ” 这类操作符前后不加空格。
【建议 2
2
2
2 -
-
-
- 3
3
3
3 -
-
-
- 1
1
1
1 】 对于表达式比较长的 for 语句和 if 语句 , 为了紧凑起见可以适当地去
掉一些空格,如 for (i=0; i<10; i++) 和 if ((a<=b) && (c<=d))
void Func1(int x, int y, int z); // 良好的风格
void Func1 (int x,int y,int z); // 不良的风格
if (year >= 2000) // 良好的风格
if(year>=2000) // 不良的风格
if ((a>=b) && (c<=d)) // 良好的风格
if(a>=b&&c<=d) // 不良的风格
for (i=0; i<10; i++) // 良好的风格
for(i=0;i<10;i++) // 不良的风格
for (i = 0; I < 10; i ++) // 过多的空格
x = a < b ? a : b; // 良好的风格
x=a<b?a:b; // 不好的风格
int *x = &y; // 良好的风格
int * x = & y; // 不良的风格
array[5] = 0; // 不要写成 array [ 5 ] = 0;
a.Function(); // 不要写成 a . Function();
b->Function(); // 不要写成 b -> Function();
示例 2- 3 代码行内的空格
![](https://csdnimg.cn/release/download_crawler_static/10564116/bg12.jpg)
高质量 C++/C 编程指南, v 1.0
2001 Page 18 of 101
2
2
2
2
.
.
.
.
4
4
4
4 对齐
【规则 2
2
2
2 -
-
-
- 4
4
4
4 -1
-1
-1
-1 】 程序的分界符 ‘ { ’ 和 ‘ } ’ 应独占一行并且位于同一列 , 同时与引用
它们的语句左对齐。
【规则 2
2
2
2 -
-
-
- 4
4
4
4 -2
-2
-2
-2 】 { } 之内的代码块在 ‘ { ’ 右边数格处左对齐。
示例 2- 4 ( a )为风格良好的对齐,示例 2- 4 ( b )为风格不良的对齐。
void Function(int x)
{
… // program code
}
void Function(int x){
… // program code
}
if (condition)
{
… // program code
}
else
{
… // program code
}
if (condition){
… // program code
}
else {
… // program code
}
for (initialization; condition; update)
{
… // program code
}
for (initialization; condition; update){
… // program code
}
While (condition)
{
… // program code
}
while (condition){
… // program code
}
如果出现嵌套的{ } ,则使用缩进对齐,如:
{
…
{
…
}
…
}
示例 2-4(a) 风格良好 的对齐 示例 2- 4 (b) 风格不良 的对齐
![](https://csdnimg.cn/release/download_crawler_static/10564116/bg13.jpg)
高质量 C++/C 编程指南, v 1.0
2001 Page 19 of 101
2
2
2
2
.
.
.
.
5
5
5
5 长行拆分
【规则 2
2
2
2 -
-
-
- 5
5
5
5 -1
-1
-1
-1 】 代码行最大长度宜控制在 70 至 80 个字符以内。代码行不要过长 , 否
则眼睛看不过来,也不便于打印。
【规则 2
2
2
2 -
-
-
- 5
5
5
5 -2
-2
-2
-2 】 长表达式要在低优先级操作符处拆分成新行 , 操作符放在新行之首 ( 以
便突出操作符 ) 。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。
if ((very_longer_variable1 >= very_longer_variable12)
&& (very_longer_variable3 <= very_longer_variable14)
&& (very_longer_variable5 <= very_longer_variable16))
{
dosomething();
}
virtual CMatrix CMultiplyMatrix (CMatrix leftMatrix,
CMatrix rightMatrix);
for (very_longer_initialization;
very_longer_condition;
very_longer_update)
{
dosomething();
}
示例 2- 5 长行的拆分
2
2
2
2
.
.
.
.
6
6
6
6 修饰符的位置
修饰符 * 和 & 应该靠近数据类型还是该靠近变量名,是个有争议的活题。
若将 修饰符 * 靠近数据类型,例如: int* x; 从语义上讲此写法比较直观,即 x
是 int 类型的指针。
上述写法的弊端是容易引起误解,例如: int* x, y; 此处 y 容易被误解为指针变
量。 虽然将 x 和 y 分行定义可以避免误解,但并不是人人都愿意这样做。
【规则 2
2
2
2 -
-
-
- 6
6
6
6 -1
-1
-1
-1 】 应当将修饰符 * 和 & 紧靠变量名
例如:
char *name;
int *x, y; // 此处 y 不会被误解为指针
![](https://csdnimg.cn/release/download_crawler_static/10564116/bg14.jpg)
高质量 C++/C 编程指南, v 1.0
2001 Page 20 of 101
2
2
2
2
.
.
.
.
7
7
7
7 注释
C 语言的注释符为 “ /* … */ ” 。 C++ 语言中,程序块的注释常采用 “ /* … */ ” ,行注释
一般采用 “ // … ” 。注释通常用于:
( 1 )版本、版权声明;
( 2 )函数接口说明;
( 3 )重要的代码行或段落提示。
虽然注释有助于理解代码,但注意不可过多地使用注释。参见示例 2-6 。
【规则 2
2
2
2 -
-
-
- 7
7
7
7 -1
-1
-1
-1 】 注释是对代码的 “ 提示 ” , 而不是文档 。 程序中的注释不可喧宾夺主
,
注释太多了会让人眼花缭乱。注释的花样要少。
【规则 2
2
2
2 -
-
-
- 7
7
7
7 -2
-2
-2
-2 】 如果代码本来就是清楚的 , 则不必加注释 。 否则多此一举 , 令人厌烦
。
例如
i++; // i 加 1 ,多余的注释
【规则 2
2
2
2 -
-
-
- 7
7
7
7 -3
-3
-3
-3 】 边写代码边注释 , 修改代码同时修改相应的注释 , 以保证注释与代码
的一致性。不再有用的注释要删除。
【规则 2
2
2
2 -
-
-
- 7
7
7
7 -4
-4
-4
-4 】 注释应当准确 、 易懂 , 防止 注释有二义性 。 错误的注释不但无益反而
有害。
【规则 2
2
2
2 -
-
-
- 7
7
7
7 -5
-5
-5
-5 】 尽量避免在注释中使用缩写,特别是不常用缩写。
【规则 2
2
2
2 -
-
-
- 7
7
7
7 -6
-6
-6
-6 】 注释的位置应与被描述的代码相邻,可以放在代码的上方或右方 , 不
可放在下方。
【规则 2
2
2
2 -
-
-
- 7
7
7
7 -8
-8
-8
-8 】 当代码比较长 , 特别是有多重嵌套时 , 应当在一些段落的结束处加注
释,便于阅读。
示例 2-6 程序的注释
/*
* 函数介绍:
* 输入参数:
* 输出参数:
* 返回值 :
*/
void Function(float x, float y, float z)
{
…
}
if ( … )
{
…
while ( … )
{
…
} // end of while
…
} // end of if
剩余100页未读,继续阅读
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/1f6d4013d8f8487bab544bdddcab93bd_nemo2011.jpg!1)
nemo2011
- 粉丝: 178
- 资源: 6
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 岩石滑动与断层冲击地压:声发射特征分析
- 新时代煤炭工业八大战略新取向剖析
- 开采强度对华亭矿区冲击地压危险性的影响分析
- 新安煤矿探采对比:影响安全生产的关键因素与技术支撑
- 210MW循环流化床锅炉引风机变频改造优化与节能效果
- 浅埋煤层开采沉陷预测:方法应用与影响分析
- 优化巷道过陷落柱支护方案:数值模拟与现场试验
- 坚硬顶板定向断裂爆破技术:安全高效采煤新方案
- 北航2019算法课作业解析:投资策略与凸子多边形优化
- 断层破碎带垮冒下堆积体边界抗力分布关键影响因素
- 哈拉沟选煤厂优化末煤系统提高效率与处理能力
- 瓦斯涌出影响下采动煤体蠕变失稳研究
- 提升煤矿装载效率的可控箕斗定量装载设备设计
- 水分调控下烟煤瓦斯吸附特性对比研究
- 重介质悬浮液密度控制硬件设计与选型探讨
- 坚硬顶板巷道支护参数设计:现场测试与数值分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)