C语言在编程语言里处于什么地位?
一、C语言在编程语言里的地位
C语言在编程语言里已经成为世界上最流行、最重要的一种编程语言,C是一种融合了控制特性的现代语言。而在计算机科学的理论和实践中,控制特性是很重要的。其设计使得用户可以自然地采用自顶向下的规划,结构化的编程,以及模块化的设计。这种做法使得编写出的程序更可靠,更易懂。
高效性
C是一种高效的语言。在设计上它充分利用了当前计算机在能力上的优点。C程序往往很紧凑且运行速度快。事实上,C可以表现出通常只有汇编语言才具有的精细控制能力(汇编语言是特定的CPU设计所采用的一组内部指令的助记符。不同的CPU类型使用不同的汇编语言)。如果愿意,你可以细调程序以获得最大速度或最大内存使用率。
可移植性
C是一种可移植语言。这意味着,在一个系统上编写的C程序经过很少改动或不经修改就可以其他系统上运行。如果修改是必要的,则通常只须改变伴随主程序的一个头文件中的几项内容即可。多数语言原本都想具有可移植性,但任何曾将IBM PC BASIC 程序转换为 Apple BASIC 程序(它们还是近亲)的人,或者试图在 UNIX 系统上运行一个 IBM 大型机 FORTRAN 程序的人都知道,移植至少是在制造麻烦。C 在可移植性方面处于名列前茅地位。C 编译器(将C代码转换为计算机内部使用的指令的程序)在大约40多种系统上可用,包括从使用8位微处理器的计算机到Cray超级计算机。不过要知道,程序中为访问特定硬件设备(例如显示器)或操作系统(如Windows XP或OS X)的特殊功能而专门编写的部分,通常是不能移植的。
由于C与UNIX的紧密联系,UNIX系统通常都带有一个C编译器作为程序包的一部分。Linux中同样也包括一个C编译器。个人计算机,包括运行不同版本的 Windows 和 Macintosh 的PC,可使用若干种C编译器。所以不论你使用的是家用计算机,专业工作站还是大型机,都很容易得到针对你特定系统的C编译器。
强大的功能和灵活性
C强大而又灵活(计算机世界中经常使用的两个词)。例如,强大而灵活的 UNIX操作系统的大部分便是用C编写的。其他语言(如 FORTRAN,Perl,Python,Pascal,LISP,Logo和BASIC)的许多编译器和解释器也都用C编写的。结果是,当你在一台UNIX机器上使用FORTRAN时,最终是由一个C程序负责生成最后的可执行程序的。C程序已经用于解决物理学和工程学问题,甚至用来为《角斗士》这样的电影制造特殊效果。
面向编程人员
C面向编程人员的需要。它允许你访问硬件,并可以操纵内存中的特定位。它具有丰富的运算符供选择,让你能够简洁地表达自己的意图。在限制你所能做的事情方面,C 不如Pascal这样的语言严格。这种灵活性是优点,同时也是一种危险。优点在于:许多任务(如转换数据形式)在C中都简单得多。危险在于:使用C时,你可能会犯在使用其他一些语言时不可能犯的错误。C给予你更多的自由,但同时也让你承担更大的风险。
延伸阅读:
二、C语言的未来
在编程语言流行程度方面,Java、Python、C++ 等现代编程语言已经取代了C语言的地位;但是C语言已经存在了很长时间,并且到目前仍然被大量使用。
C语言失败的一个主要原因是 C++的诞生。C++ 在C语言的基础上进行了扩展,不但保留了几乎所有的C语言特性,还包含了面向对象编程和模板编程等新的思想。对于用户使用的应用程序,人们更喜欢使用 C++,它的开发效率更高,使用更方便。
但是,C++ 程序占用内存较多,尤其是在使用 C++ 标准模板库时,内存更是疯长,对于资源有限的嵌入式系统,或者在意资源消耗的系统组件来说,内存疯长是不能承受的,所以C语言仍然是嵌入式系统开发、驱动开发、算法开发的更可靠的选择。
总之,在应用层开发中,C语言已经被 Java、Python、PHP 等现代语言取代了,C语言几乎没有了用武之地。但是,在嵌入式系统开发、驱动开发、底层组件开发、算法开发方面,C语言仍然是不可被替代的。
C语言在可见的未来虽然不会有蓬勃的发展,但是它也不会消失,它仍然有用武之地,在某些领域仍然是不可或缺的。C语言没有未来,但是仍不可被取代。
相关推荐HOT
更多>>线性表中的随机存取(读写)是什么意思?
一、线性表中的随机存取(读写)是什么意思线性表是数据结构中的一种基本数据类型,它包含了一组有序的数据元素,每个元素有一个少数的前驱元素和...详情>>
2023-10-14 23:06:05为什么MySQL的IN操作在大于3个操作数时不用索引?
一、MySQL的IN操作在大于3个操作数时不用索引的原因1、索引数据结构的限制MySQL使用B树或哈希等索引数据结构来加速查询,但这些数据结构都有其...详情>>
2023-10-14 22:01:14STL中为什么遍历map比遍历list慢?
一、STL中遍历map比遍历list慢的原因1、内存布局不同 map和list的内存布局不同,map是一种基于红黑树实现的关联容器,其数据结构是一棵二叉搜索...详情>>
2023-10-14 18:50:17先根遍历和先序遍历的区别?
一、先根遍历和先序遍历先根遍历和先序遍历是同一个概念,只是叫法不同,也叫前序遍历,是一种节点遍历算法,指的是按照“根节点->左子树->右子...详情>>
2023-10-14 17:31:25热门推荐
完全二叉树为什么非常适合顺序存储结构?
沸线性表中的随机存取(读写)是什么意思?
热有哪些javascript数据结构相关库用来描述队列、树、图?
热为什么MySQL的IN操作在大于3个操作数时不用索引?
新Java中遍历数据结构Enumeration和Iterator相比有什么不同?
数据结构里面pnext与next有什么区别?
数组与集合有什么不同?
ASPICE是什么?
数据结构中HashMap与HashTable的区别是什么?
STL中为什么遍历map比遍历list慢?
什么是tpm管理?
什么叫精益管理?
先根遍历和先序遍历的区别?
HashMap为什么不用B+树来替换红黑树?