高质量C/C++编程指南--程序版式

此系列文章实为对《高质量程序设计指南--C++/C语言》的重点摘要总结

本篇总结的为程序版式:

 

良好的代码版式有助于阅读代码和进行维护。可以设想,没有良好的排版的文章,估计读者看不到一半就没耐心继续往下读了。代码更是如此,没有好的编程风格,写出来的代码只会苦涩,让人难以阅读和理解。所以学习良好的编程风格是百利而无一害的!

利用好空格与换行(这两者能使我们代码的意思更加的清晰)


换行:

空行不会浪费内存,所以不要舍不得,但也不能滥用!一般我们会在以下情况添加空行(或进行换行):

  1. 在每个类声明后、每个函数定义结束后添加
  2. 在一个函数体内,逻辑密切的相关语句之间不添加,反之可添加空行进行分隔
  3. 一行代码只做一件事情。即一行只定义一个变量,或只写一条语句。这样方便阅读和注释
  4. if \ for \ while \ do 等语句独自占一行,执行语句不紧跟其后,不论执行语句的多少

尽量在定义变量的同时对该变量进行初始化,这样做可以避免引用了未被初始化变量带来的错误。


空格:

合理地使用空格,使变量名或关键字与其他的字符保持一定的距离。这样做,就避免了因代码的过度紧凑带来 “审美疲劳” 。

同样,关于如何合理使用空格,有以下的建议:

  1. 所有的关键字后至少留一个空格。而像 if \ while \ for 等关键字后应留一个空格再跟左括号  ‘ ( ’
  2. 函数名不能留空格
  3. ' ( ' 向后紧跟, ' ) ',  ' , ',  ' ; ' 向前紧跟
  4. ‘ , ’ 后留空格,若‘ ; ’ 不是一行的结束符号,其后要留空格
  5. 二元操作符前后应加空格
  6. 一元操作符前后不加空格
  7. ‘[ ] ',   ' . ',  ' - > ' 前后不加空格
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字符内。虽然如此,但我们可设想如果一整行都写满了,无疑会为我们阅读代码和维护带来不便。所以就需要进行长行拆分。

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();	 
}


注释(通常用于):

  1. 版本、版权声明
  2. 函数接口声明
  3. 重要的代码行或段落提示

注释建议与规则: 

  1. 注释应当准确、易懂、防止有二义性 
  2. 边写代码边注释,修改代码的同时修改注释,保证一致性 
  3. 当代码比较长,特别是多重嵌套时,应当在一些段落的结束处加注释,便于阅读
  4. 注释的位置应与被描述的代码的相邻,最好放在代码的上方或右方,不可以在下方
  5. 注释不能滥用。因为精简到位的注释能帮助我们理解代码的意思,但如过多的滥用,并且做一些“多余”的注释。只会多此一举。例如: i++;  / / 变量i进行自增
if ()
{
	//代码行
	while ()
	{
		//代码行
	} // end of while

	//代码行

} // end of if


类的版式(主要有两种):

  1. “以数据为中心”。私有类型的数据写在前面,将公有类型的函数写在后面
  2. “以行为为中心”。将公有类型的函数写在前面,私有类型的数据写在后面

 

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

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值