C语言漫谈

2008-02-23 05:25:48来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

C语言是被使用的最广泛的一种高级语言,其历史相当久远。而其发展也相当神速, 从当初的标准C发展到后来的C 。其性能也发生了很多很大的变化。C语言拥有众多的编译器,其中不乏优秀者众多。从当初的Turbo C引入集成化编译环境后,C语言就以其灵活性,高效率,可移植性好深入人心。后来发展起来的C ,Java 等语言,无不是在 其基础进行扩充,使其更为灵活,更方便易用。新的C 编译器引入了很多特色。使得C语言语法更加灵活。摒弃了标准C对语法死板的需要。使得编程随心所欲。这里推荐 Borland C 和Visual C .当然这是指Dos应用,假如研发Windows应用程式,那么当 首推Visual C .Visual C 的可视化及自动代码生成功能相当强大。尤其他提供的 Wizard 和Appstudio,使得研发程式简直成为一种享受。而且由于Visual C 在各版本之间的连续性,使得研发者不必经历换版带来的痛苦。从其1.5版直到最新的5.0版兼容性保持的很好。而且在VC中也包含了控制台应用(Dos),连同Windows Application,application wizard各种应用,所以是个强大的研发包。 学习C语言,起初会觉得要记的东西太多,这是由于他太灵活了。但是学到一定程度,就会尝到甜头了。这种灵活性带来的是可读性好,语法简单,效率高。当然C语言最大的 特色还是他的指针对指针的透彻理解将是今后研发工作中的得力助手。因为在C 中指针无处不见,很多参数就完全是指针化的。虽然Java中摒弃了指针,那是从安全性 方面考虑。假如从性能上来说,那是大亏了。所以指针是个核心。要学好C语言,无非要透彻理解书本概念,辅之以大量上机编程。要想提高应用水平, 就要多看些应用方面的书。比如看看数据结构,然后自己想办法来实现其中的算法。总之,编程是靠编出来的,不是靠看出来的。在调试程式时,尽量自己解决,实在 解决不了,能够请教老师,总之,单独思考很重要。有条件的话,在网上提问题,可受到事半功倍的效果。坚持下去,相信不久您就会成功的喜悦了。 以上所述,旨在抛砖引玉,若有不当,敬请见谅!

编写优质无错代码

一. 引言
八月上旬,深圳举办了一个讨论会,主题是"编写优质无错代码"。这个讨论会吸引了深圳各大软件公司,通信公司的程式员,系统分析员参加,并在讨论会后纷纷表示,这种讨论会很有实际价值,希望将这种形式的讨论会继续下去,形成一个论坛,以提高大家的编程水平和交换有价值的信息资料。
这个活动的发起是从网络上开始的。我偶然看到了这个讨论会的论题,发生了兴趣。本来周末的我一般是很懒的,没什么事情是不会出门的。而当我看到这论题后,就给举办者发信表示愿意参加。于是,一个周六的下午,我就坐在了讨论会的现场。参加完这个讨论后,我觉得有必要把其中的精华部分写下来,和网络上的广大程式员共享,于是就有了这篇文章。 二.主题:
编写优质无错的代码---讨论会主题。相信每个程式员都有这种希望,谁都不愿意自己写出来的代码在release之后出错,需要不停的修改维护。但是,主持人提出了这样一个问题:"编写优质无错代码是否必要?" 为什么呢?我稍微解释一下。在项目的时间很紧张的时候,是按期完成任务重要,还是代码的稳定性,优质无错重要呢?
主持人提出的四个具体问题是:
1、编写优质无错的代码的代价是什么?
2、代码的质量重要还是编写效率重要?
3、在压力的情况下,您会牺牲质量来提高效率么?
4、编写优质无错的代码是否意味着效率的降低?
对于第一个问题,编写优质无错代码的代价当然是时间,但是随着编程人员的经验逐渐丰富,所需要的时间也逐渐减少。
对于第二个问题,代码的质量比编写效率重要。当您花了1周时间写出来的代码需要您花一个月或更长的时间去debug, 去修改错误,这种效率的损失是得不偿失的。
对于第三个问题, 这需要看项目经理或产品经理的态度和专业精神了。假如在一个专业的项目经理或产品经理的指挥下,当然是首先确保质量其次提高效率。而对于某些项目经理或产品经理来说,按时完成任务是最重要的,他们往往不在乎在软件发布之后花比研发时间长得多的时间去修改程式,维护错误。因为,对于他们来说,首先是要完成任务,好给上级领导交差,至于后期维护,就是另外一个任务了,维护花的时间多,正说明了他这个项目的复杂性和难度。而对于研发人员来讲,所希望的则正好相反。研发人员不喜欢花太多的时间在一个烂摊子上。所以,在讨论会上,大家纷纷表示,应该让项目经理或产品经理也来听一听这个讨论会:-)。
对于第四个问题,当然优质无错代码不是意味着效率的降低,而是正好相反,对提高效率有很好的促进作用。一个版本发布之后,假如因为错误太多,研发人员不得不去花很多时间修改bug, 甚至要从系统的体系结构方面去做大的改变,重新编写部分代码,这种效率的降低才是更大,更不能承受的。而且,花了太多的时间在老版本的维护上,必然影响到新版本的工程进度,直接影响到整个产品线的质量和进度,严重的甚至会毁掉整个产品。

对于这一个主题,我的回答是,在时间允许的范围之内,尽量提高代码的质量,不追求慢工出细活,不追求代码的100%无错,但是要确保99%以上的无错。这样,在时间的压力下,在质量需要的束缚下,就需要程式员有一个良好的习惯,和稳健的编程风格,以确保代码的优质无错。这就是第二个问题:什么是编写优质无错的代码的核心思想?优质无错是相对的,而不是绝对的。任何代码,都不可能说是绝对无错的,但是在绝大部分情况下,是稳定的,强健的,优质的,无错的。每次发布的时候,都会对上次的发布版本做若干修改,增强功能的同时,也要修改若干bug。
那么,核心思想就是:
怎样才能自动地查出这个错误。
怎样才能避免这个错误。

三.编写优质无错代码的经验
在说了上面很多理论性的问题之后,来看一看具体问题。
先来看一看一个具体的题目:(我本人就是先在网上看了这个题目,才对这个讨论会发生兴趣的)
题目1:
作为研发团队的一员,您需要实现一些库函数提供给其他人使用。假设您实
现的一个函数原型如下:

int DoSomeThing(char* pParam)
{
...
}

您们约定好参数pParam不能为NULL,但为了防止调用者错误传递NULL,您需要在您的函数里做判断处理。
请问您会选择那种方式,并说明原因?

(a) if (!pParam)
return 0;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: Linux下面如何进行C语言编程

下一篇: C语言学习初次体会