灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:4170回复:0

[C++技术]高质量C/C++编程指南--程序版式

楼主#
更多 发布于:2012-11-10 14:16

良好的代码版式有助于阅读代码和进行维护。可以设想,没有良好的排版的文章,估计读者看不到一半就没耐心继续往下读了。代码更是如此,没有好的编程风格,写出来的代码只会苦涩,让人难以阅读和理解。所以学习良好的编程风格是百利而无一害的!
利用好空格与换行(这两者能使我们代码的意思更加的清晰)
空行不会浪费内存,所以不要舍不得,但也不能滥用!一般我们会在以下情况添加空行(或进行换行):
在每个类声明后、每个函数定义结束后添加
在一个函数体内,逻辑密切的相关语句之间不添加,反之可添加空行进行分隔
一行代码只做一件事情。即一行只定义一个变量,或只写一条语句。这样方便阅读和注释
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


类的版式(主要有两种):
“以数据为中心”。私有类型的数据写在前面,将公有类型的函数写在后面
“以行为为中心”。将公有类型的函数写在前面,私有类型的数据写在后面

建议采用“以行为为中心”。这样不仅让自己在设计类时思路清晰,而且方便别人阅读。因为用户关心的是接口。

喜欢0 评分0
游客

返回顶部