高质量C/C++编程指南--程序版式
5168 点击·0 回帖
![]() | ![]() | |
![]() | 良好的代码版式有助于阅读代码和进行维护。可以设想,没有良好的排版的文章,估计读者看不到一半就没耐心继续往下读了。代码更是如此,没有好的编程风格,写出来的代码只会苦涩,让人难以阅读和理解。所以学习良好的编程风格是百利而无一害的! 利用好空格与换行(这两者能使我们代码的意思更加的清晰) 空行不会浪费内存,所以不要舍不得,但也不能滥用!一般我们会在以下情况添加空行(或进行换行): 在每个类声明后、每个函数定义结束后添加 在一个函数体内,逻辑密切的相关语句之间不添加,反之可添加空行进行分隔 一行代码只做一件事情。即一行只定义一个变量,或只写一条语句。这样方便阅读和注释 if \ for \ while \ do 等语句独自占一行,执行语句不紧跟其后,不论执行语句的多少 尽量在定义变量的同时对该变量进行初始化,这样做可以避免引用了未被初始化变量带来的错误。 合理地使用空格,使变量名或关键字与其他的字符保持一定的距离。这样做,就避免了因代码的过度紧凑带来 “审美疲劳” 。 同样,关于如何合理使用空格,有以下的建议: 所有的关键字后至少留一个空格。而像 if \ while \ for 等关键字后应留一个空格再跟左括号 ‘ ( ’ 函数名不能留空格 ' ( ' 向后紧跟, ' ) ', ' , ', ' ; ' 向前紧跟 ‘ , ’ 后留空格,若‘ ; ’ 不是一行的结束符号,其后要留空格 二元操作符前后应加空格 一元操作符前后不加空格 ‘[ ] ', ' . ', ' - > ' 前后不加空格 [cpp] int width; // 宽度 int height; // 高度 x = a + b; y = c + d; if (width <= height) { function(); } // 空行 for (int i=0; i<n; i++) { function(); } void function(int i, int j); if ((a>=b) ;; (c<=d)) { //... } x = a < b ? a : b; a[5] = 0; a.function(); a->function(); 长行拆分: 代码行的最大长度控制在70至80字符内。虽然如此,但我们可设想如果一整行都写满了,无疑会为我们阅读代码和维护带来不便。所以就需要进行长行拆分。 [cpp] if ((very_longer_variable1 >= very_longer_variable12) ;; (very_longer_variable3 <= very_longer_variable14) ;; (very_longer_variable5 <= very_longer_variable16)) { function(); } for (very_longer_initialization; very_longer_condition; very_longer_update) { function(); } 注释(通常用于): 版本、版权声明 函数接口声明 重要的代码行或段落提示 注释建议与规则: 注释应当准确、易懂、防止有二义性 边写代码边注释,修改代码的同时修改注释,保证一致性 当代码比较长,特别是多重嵌套时,应当在一些段落的结束处加注释,便于阅读 注释的位置应与被描述的代码的相邻,最好放在代码的上方或右方,不可以在下方 注释不能滥用。因为精简到位的注释能帮助我们理解代码的意思,但如过多的滥用,并且做一些“多余”的注释。只会多此一举。例如: i++; / / 变量i进行自增 [cpp] view plaincopyprint? if () { //代码行 while () { //代码行 } // end of while //代码行 } // end of if 类的版式(主要有两种): “以数据为中心”。私有类型的数据写在前面,将公有类型的函数写在后面 “以行为为中心”。将公有类型的函数写在前面,私有类型的数据写在后面 建议采用“以行为为中心”。这样不仅让自己在设计类时思路清晰,而且方便别人阅读。因为用户关心的是接口。 | |
![]() | ![]() |