C语言有什么优点什么缺点?有什么特别之处

Python027

C语言有什么优点什么缺点?有什么特别之处,第1张

c语言的优点就是它的性能极佳,其它编程语言几乎没有它的性能,因此它被用为linux操作系统设计语言。

c语言的缺点是太灵活,没有垃圾回收,代码不好编写。

c语言特别之处就是它的指针和结构体,这两个东西的存在让c语言变得异常强大,很多复杂的业务设计,都可以通过它们两个来实现,也可以说,只有掌握了指针和结构体,你才算入门c语言。

C语言源代码,就是依据C语言规则所写出的程序代码,常见的存储文件扩展名为.c文件和.h文件,分别对应C源文件(source file)和C头文件(header file)。

C语言是一门编程语言,简单点说,就是由人类书写按照一定规范书写的字符,通过一定手段(编译链接)转换后,可以让电脑或者其它电子芯片"读懂",并按照其要求工作的语言。在所有的编程语言中,C语言是相对古老而原始的,同时也是在同类语言中更接近硬件,最为高效的编程语言。

相关内容:

C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件

当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。

C语言拥有经过了漫长发展历史的完整的理论体系,在编程语言中具有举足轻重的地位。

1.2.1 正确性

正确性是指软件按照需求正确执行任务的能力,涵盖“精确性”。正确性是第一重要的软件质量属性。技术评审和测试的第一关是检查工作成果的正确性。

从“需求开发”到“系统设计”再到“编程”,任何一个环节出现差错都会降低正确性。软件运行出错通常都是人造成的,开发者应做到为“正确”两字竭尽全力。

1.2.2 健壮性

健壮性是指在异常情况下,软件能够正常运行的能力。正确性与健壮性的区别是:前者描述软件在需求范围之内的行为,后者描述软件在需求范围之外的行为。想不到异常情况,把异常错当正常而不作处理,这些都会降低健壮性。提高软件的健壮性也是开发者的义务。

健壮性有两层含义:一是容错能力,二是恢复能力。

容错是指发生异常情况时系统不出错误的能力。高风险系统如航空航天、武器、金融等领域的系统,容错性设计非常重要。

容错是非常健壮的意思。而恢复则是指软件发生错误后(不论死活)重新运行时,能否恢复到没有发生错误前的状态的能力。

从语义上理解,恢复不及容错那么健壮。

1.2.3 可靠性

可靠性是指在一定环境下,在给定的时间内,系统不发生故障的概率。因为我们无法对软件进行彻底的测试,无法根除软件中潜在的错误,所以软件平时运行良好,说不准哪天就会不正常,如“千年虫”、“内存泄露”、“误差累积”等。

软件可靠性分析通常采用统计技术,但目前可供第一线开发人员使用的成果少见。

1.2.4 性能

性能通常是指软件的“时间—空间”效率,而不仅是指软件的运行速度。程序员可以通过优化数据结构、算法和代码来提高软件的性能。算法复杂度分析是很好的方法,可以达到“未卜先知”的功效。

1.2.5 易用性

易用性是指用户使用软件的容易程度。它直观体现为“界面友好”、“方便”等。

1.2.6 清晰性

清晰意味着工作成果易读、易理解。开发人员只有在自己思路清晰的时候才可能写出让别人清晰性好的程序和文档。可理解的东西通常是简洁的。简洁是人们对工作“精益求精”的结果,而不是潦草应付的结果。

1.2.7 安全性

安全性是指信息安全Security,不是safety。安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。对于大多数软件产品而言,杜绝非法入侵既不可能也没必要。一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高于得到的好处,这样的系统被认为是安全的。

1.2.8 可扩展性

可扩展性反映软件适应“变化”的能力。在软件开发过程中,需求、设计、算法的改进、程序本身都有可能变化,

软件是否容易修改关键看它的规模和复杂性。可扩展性是系统设计阶段重点考虑的质量属性。

1.2.9 兼容性

兼容性是指两个或以上的软件相互交换信息的能力。开发某领域的新软件,应与已流行的软件相兼容,否则难以被市场接受。

1.2.10 可移植性

可移植性是指软件运行于不同软硬件环境的能力。编程语言越低级,程序越难移植。C比汇编可移植性好,Java号称“一次编程、到处运行”,具有100%的可移植性。

软件设计时应该将“设备相关程序”与“设备无关程序”分开,将“功能模块”