资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
语言编程风格第一章:缩进格式Tab是8个字符,于是缩进也是8个字符。有很多怪异的风格,他们将缩进格式定义为4个字符(设置为2个字符!的深度,这就象试图将PI定义为3一样让人难以接受。理由是:缩进的大小是为了清楚的定义一个块的开始和结束。特别是当你已经在计算机前面呆了20多个小时了以后,你会发现一个大的缩进格式使得你对程序的理解更容易。现在,有一些人说,使用8个字符的缩进使得代码离右边很近,在80个字符宽度的终端屏幕上看程序很难受。回答是,但你的程序有3个以上的缩进的时候,你就应该修改你的程序。总之,8个字符的缩进使得程序易读,还有一个附加的好处,就是它能在你将程序变得嵌套层数太多的时候给你警告。这个时候,你应该修改你的程序。第二章:大符号的位置另外一个C程序编程风格的问题是对大括号的处理.同缩进大小不同,几乎没有什么理由去选择一种而不选择另外一种风格,但有一种推荐的风格,它是Kernighan和Ritchie的经典的那本书带来的,它将开始的大括号放在一行的最后,而将结束大括号放在一行的第一位,如下所示:if(xistruewedoy然而,还有一种特殊的情况:命名函数:开始的括号是放在下一行的第一位,如下intfunction(intxbodyoffunction所有非正统的人会非难这种不一致性,但是,所有思维正常的人明白:(第一K&R是对的,(第二如果K&R不对,请参见第一条。另外,函数也是特殊的,不一定非得一致。需要注意的是结束的括号在它所占的那一行是空的,除了它跟随着同一条语句的继续符号。如while在do-while循环中,或者else在if语句中。如下:dobodyofdo-loopwhile(condition;以及if(x=y.elseif(xy.else.理由:K&R.另外,注意到这种大括号的放置方法减小了空行的数量,但却没有减少可读性。于是,在屏幕大小受到限制的时候,你就可以有更多的空行来写些注释了。第三章:命名系统C是一种简洁的语言,那么,命名也应该是简洁的。同MODULE-2以及PASCAL语言不同的是,C程序员不使用诸如ThisVariableIsATemporaryCounter之类的命名方式。一个C语言的程序员会将之命名为tmp,这很容易书写,且并不是那么难以去理解。然而,当混合类型的名字不得不出现的时候,描述性名字对全局变量来说是必要的了。调用一个名为foo全局的函数是很让人恼火的。全局变量(只有你必须使用的时候才使用它,就象全局函数一样,需要描述性的命名方式。假如你有一个函数用来计算活动用户的数量,你应该这样命名count_active_users(,或另外的相近的形式,你不应命名为cntusr(。有一种称为Hungarian命名方式,它将函数的类型编码写入变量名中,这种方式是脑子有毛病的一种表现,编译器知道这个类型而且会去检查它,而这样只会迷惑程序员。知道为什么Micro$oft为什么会生产这么多臭虫程序了把!局部变量的命名应该短小精悍。假如你有一个随机的整数循环计数器,它有可能有i,如果没有任何可能使得它能被误解的话,将其写作loop_counter是效率低下的。同样的,tmp可以是任何临时数值的函数变量。第四章:函数函数应该短小而迷人,而且它只作一件事情。它应只覆盖一到两个屏幕(80*24一屏,并且只作一件事情,而且将它做好。(这不就是UNIX的风格吗,译者注。一个函数的最大长度和函数的复杂程度以及缩进大小成反比。于是,如果你已经写了简单但长度较长的的函数,而且你已经对不同的情况做了很多很小的事情,写一个更长一点的函数也是无所谓的。然而,假如你要写一个很复杂的函数,而且你已经估计到假如一般人读这个函数,他可能都不知道这个函数在说些什么,这个时候,使用具有描述性名字的有帮助的函数。另外一个需要考虑的是局部变量的数量.他们不应该超过5-10个,否则你有可能会出错.重新考虑这个函数,将他们分割成更小的函数。人的大脑通常可以很容易的记住7件不同的事情,超过这个数量会引起混乱。你知道你很聪明,但是你可能仍想去明白2周以前的做的事情。第5章:注释注释是一件很好的事情,但是过多的注释也是危险的,不要试图区解释你的代码是注释如何如何的好:你应该将代码写得更好,而不是花费大量的时间去解释那些糟糕的代码。通常情况下,你的注释是说明你的代码做些什么,而不是怎么做的。而且,要试图避免将注释插在一个函数体里:假如这个函数确实很复杂,你需要在其中有部分的注释,你应该回到第四章看看。你可以写些简短的注释来注明或警告那些你认为特别聪明(或极其丑陋的部分,但是你必须要避免过多。取而代之的是,将注释写在函数前,告诉别人它做些什么事情,和可能为什么要这样做。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号