抛弃C程序设计中的谬误与恶习(2)

//****************************************

  创建时间:2014年9月24日星期三

  创建作者:xxx

//****************************************

 

”简洁是智慧的灵魂”。----莎士比亚

1、KISS原则

程序设计中有一条所谓的KISS原则:Keep it simple , stupid

Kiss原则是unix操作系统的设计哲学。Unix不主张像瑞士军刀那样把各种功能集成一体,而是主张一个工具只做一件事情,这样才能把它做好。

比如这样一个程序,从键盘输入3个整数,要求程序输出其中最大的数

直接上一个最优秀的代码:


2、啰嗦重复

尤其在写判断语句时,很多语句可以省略,从而大大精简代码臃肿毛病

比如判断输入的字符C是否为字母字符

优秀的代码如下:

Int letter( char c )

{

Return ((c>=’a’&&c<=’z’) || (c>=’A’ && c<= ‘Z’));
}

在啰唆重复这里,还要说一种常见的质量不高的代码,也是我常常写的代码,

这是上什么代码呢?

为了记住这个啰唆重复的病句,我起了个名字叫做”二传手”,也叫做”脱裤子放屁”

就是在函数中,经常把通过形参传递过来的值在传给一个中间变量,本身这个变量没有太多的作用,经过传递,多了一个变量,这是不值得的


3、明白表达式的本质

我以前写的代码就是下面这个毛病

While((ch = getchar ) != EOF)

如果你仔细看我写过的acm程序就可以发现其中存在这样的病句很多,其实这都是质量不高的代码,对此我感到很抱歉。如果这是一个初出茅庐的本科生写出的,还可以原谅,但是对于一个研二的人来说,不应该,只能说C编程能力不高。

表达式本身就可以表达一个值

所以上面的代码可以如下写:

While( getchar() != EOF )


4、代码写的要“拽”(DRY)

DRY:don’t repeat yourself

这是写出优质代码的一个重要原则。其含义就是不要四处写同样的代码。这就是拽的意思。

比如这样一个程序,要求输入一个正整数,如果不是,则重新输入

相信很多人都不可能写出这样的代码:直接贴出漂亮的代码:

While(

     Printf(“please input thevalue of n:”) , scanf(“%d”,&n), n<= 0

)

Printf(“error\n”);

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值