再谈C语言的学习(九)──程序设计中的几个法则

    最基本的法则莫过于 Knuth 的《计算机程序设计艺术》(The art of computer programming)所提到的几条特性( Knuth是全球公认的算法高手,TeX排版系统的缔造者,也是名黑客,所以也请记住他):
 
    1.确定性:你写的程序必须有确切的定义,即每种运算应该执行何种运作是必须是清楚的、无二义性的。你不可以让你的程序输入是3+5,而输出则一会儿是8,一会儿是9;
    2.能行性:算法中有待实现的运算都是基本的运算,程序中的每种运算至少在原理上能用纸和笔在有限的时间内完成。
    3.输入:一个算法应有输入。如果你还没动什么而程序总是给你一个运行了一百遍也一样的结果,你会不会觉得无聊?(不过这也是允许的,称为0输入);
    4.输出:应要输出运行结果。如果输入了数据而计算机却老黑着脸(老是不给运行结果)给你看,你又是什么感觉?
    5.有穷性:一个算法总是在执行了有穷步的运算之后终止。(人工10000年也算是允许的,只要能给出个确切的数值)。很显然无休止的运算只会带给你一个印象──“我的机子是不是死机了?”
 
    还有就是 Eric S. Raymond (“怎么还是他?”)的《UNIX程序设计艺术》(The art of UNIX programming)提到的十七条法则,具体的还是看他的这本书吧,不过请做好心理准备,它是英文版的。最重要的法则同时也是十七条法则的综合叫做 “K.I.S.S.”原则。K.I.S.S.即“Keep It Simple, Stupid.”,意为时刻让你的程序保持最简单的状态──语句写得简单,程序用得简单。要达到这点要求也不是一朝一夕的事,请注意你的编程习惯。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值