找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3637|回复: 0
打印 上一主题 下一主题
收起左侧

分享我对C语言更深入的理解

[复制链接]
跳转到指定楼层
楼主
ID:51783 发表于 2013-7-13 03:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     C语言一直以来是大家关注和学习的对象,不得不说,这与它的简单易用和可移植性等等优点有关,最重要的一点是,它属于面向程序员的计算机语言。当然,C语言更是编译型语言,由它制作的软件运行速度几乎接近于汇编,所以速度也是它成功的一大原因。

       C语言与其他计算机语言有着很多区别,最大表现在,它是为专业的程序员量身定做的计算机编程语言。就像COBOL语言,它并不是简单易用的语言,它的设计宗旨是让业外人士也能看懂它要表现的内容,再如BASIC,它主要是供非程序员编写计算机程序和解决简单问题。

        从某种意义上说,C语言的设计更加人性化。C语言同样是中级语言,这并非是在低贬它的能力。相反的,它集成了高级语言和低级语言的共同特性,它能够像高级语言一样轻松编程,更能像低级汇编语言一样对计算机硬件和位、字节、地址等等基本成分进行操作。

       著名的UNIX系统曾经经历了由汇编到C语言编写的过渡,后来又用C++进行了修改。由此可见,C语言的功能无比强悍,足以担任各种重任,从某种意义上说,C语言能够胜任一切。

       C语言并非是针对某一平台的语言,它能够运用在各种环境下,这其中包括DOS。 C语言的运用已经流行接近三十余年,但它并没有被淘汰,尽管C语言本身已经有C++和C#这些新版本,但它也从未被大家遗忘过。

        在C语言发展早期,不凡有许多著名厂商对它强烈支持,其中的Windows、UNIX、LINUX等等大型操作系统上也有它的身影,事实上,它从某种程度上促进了各种系统和软件的发展。

       由C语言编写的程序有很多,比如微软的OffiCe,VC等等,当然,各种软件的不同版本都采用了不同的语言编写。现在,更多人用C++和C#编程,原因不在于C语言的过时或者不可胜任,而在于两个后者都有更好的开发环境平台,也能够更加高效和快速地进行软件的集成开发。而前者,C语言在开发大型软件时,会因为源码过多而难以维护,修改更是老大的问题。当然,C语言在某些方面不及后面发展出来的新版本,这是事实。

       C语言应用于各个方面,主要体现在系统和硬件支持以及常用工具、软件开发等等方面。详细地讲,它可以编写以下类型的软件:基层的各种系统软件和硬件操作程序,各种影音和桌面以及网络应用软件,各种游戏软件、数据库开发软件、信息管理系统,各类图形设计软件(如CAD等)、编程软件(编译器,解译器),人工智能等等。

       C语言是面向过程的编程语言,这是它的不足。在面向对象语言出现后,C语言就显现了它的某些不足。C语言虽然有着众多的不足,还有许多老大的问题不能解决,但这些都没有影响到它的成功,它也并没有被抛弃。现在的C语言已经发展到了很高的水平,它有了新的标准,也就是C99,它通过这个标准保持了自身的特性。正因如此,它才没有因为C++的出现,以至现在的C#代替。

       C语言是结构化语言,它比其他语言更加简洁优美。然而,这也促使了新问题的出现。在编写C语言的同时,我们有可能因为误写或者漏写,也或者是多写某个字符而造成整个程序出现偏差,结果是成品与我们的预定目标相差甚远,也或者,错误被埋藏在了程序内成为了一个隐患。

       C语言同样也是自由化语言,编程人员可以轻松地操作各种关键字和库函数编写程序,只要我们能够符合其语法规定即可。然而,正如上面所说的,C语言的简洁和自由给予了我们更多的能力,特别是指针的操控,却也间接地带了更多的混乱。情况就是这样,我们已经说过,C语言是程序员语言,因此它必须是专业的人员来编写。关于这一点,最大的原因就在于,语言本身的灵活和自由上,要求编写人员自己检查错误。要知道,对指针等等细节的操控,即便是编程老手,也有可能出现因为漏字或者错字而造成巨大损失的情况。

        指针的操控是C语言最大的特色,也是它完成各种出色任务的前提。然而,同样的,指针操控也是异常危险的。C语言给予了我们自由和灵活,同时,为了实现它自身的强大功能,C语言从来不会限制使用者对指针的控制。也就是说,我们可以将指针指向任何地方,可以是我们编写好后运行着的程序内部,也可以超越这个成品程序,指向系统的任一角落,对任何数据和进程进行操作。

       良性的操作,也或者说在开发者有意控制和监视下,指针是非常有用的工具,可以探查程序本身以外的东西,可以实现进程之间进行某种操作和传递功能。然而这一切都是在正常情况下进行的,如果当我们在编写程序的时候不小心把指针指向了并非预定的位置,指针超出了我们的预料,这种恶性操作,它将不定可能地读取或者修改不定位置的数据,其结果可以想象,这种盲目修改也太过可怕了。

       正是如此,C语言的安全性是让人担忧的。即便是编程老手也得多花上比编写程序叶所花的几倍或者百倍时间去进行测试。要知道,很多情况下,某个小错误并不会引起编译错误,这个时候,错误就会在程序完成,在运行期间出现。运行期间出现错误是最危险的事情,后果轻则造成系统崩溃,重则影响硬件和数据。如果我们的程序影响到了机器上的某些重要数据,也或者软件自身的数据处理,这是很大的问题。如果我们的软件在客户那里出现这种大的问题,等待我们的不只是问题的本身,还有数据恢复或者经济损失问题。

       所以说,编程是一件非常小心的事情,我们需要非常细心地去做这个事情。同样的,我们还要有十万个耐心去检查程序的源码,过后,还要用更多的时间在更多的平台和环境下测试。发现错误,我们还得能够更加细心和更有耐心地去解决它,然后继续重新再次重复测试。最后,我们总结出了这么一个道理。我们应该时时刻刻注意源码的正确性,在编写之初,我们就应该尽可能少地防止错误出现,或者说,编写的同时应该检查源码。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表