什么是C语言?

一、前言

以下是C语言的官方定义。

笔者建议,在学习C语言的过程中,大家要着重理解红色字体部分。

  • C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
  • 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
  • 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
  • C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

二、C语言官方定义及理解

官方定义里的第一句话:C语言是一门通用计算机编程语言,广泛应用于底层开发

下面我将对上半句和下半句,分别详细阐述我对这句话的理解(计算机语言、底层开发)。

1.C语言是一门计算机语言

①计算机语言的概念

既然C语言是一门计算机语言,那么究竟什么是计算机语言呢?

在我们日常生活中,汉语、英语、德语等都是人与人交流常用的语言。

那么,人与计算机交流的语言是什么呢?没错,就是计算机语言。我们通过计算机语言,可以与计算机进行交流,向计算机传达指令,以实现我们所希望计算机完成的任务。

像C、C++、Java、Python等都属于计算机语言的范畴。

②计算机语言的发展三个阶段

每一个事物都有自己的发展史,不可能刚面世就非常适合人们的日常使用。

比如早期的照相机只能由照相师傅在照相馆专门照相;后来出现了傻瓜相机,人人都能便捷实用;到如今我们使用智能手机就可以实现照相。随着照相机的发展,门槛越来越低,功能越来越多,使用的人数也越来越多。同理,计算机语言也是如此。

在此,我将计算机语言的发展分成三个阶段:

第一阶段(机器语言):

机器语言,也就是二进制语言。计算机是一个硬件,需要通过电信号来传达信息。而电又有正电负电之分,刚好对应了计算机的1和0。因此早期,我们经常写0101101这样类似的二进制来向计算机传达我们的信息。但很显然,常人很难编写二进制,上手麻烦,故早期的编程需要查手册,只有一些科学家才能实现对计算机的交流。

第二阶段(汇编语言):

随着语言的发展,我们又产生了汇编语言。在第一阶段的过程中,我们常发现有一些二进制指令会是我们经常用到的,具有特殊的意义。比如说011101代表着加法,我们就用ADD来表示这段二进制指令,再比如说011001代表着删除,我们就可以用DEL来代替这段二进制指令。这些代替一长串二进制指令的特殊单词,我们将表明指令功能的英语单词或其缩写称为助记符。由这些助记符组成的语言,就是汇编语言。很显然,汇编语言的使用比二进制语言方便了很多,所以第二阶段有更多人可以写代码了,不再仅仅局限于科学家们查手册了。

第三阶段(高级语言):

这一阶段的语言,我们称之为高级语言。起初的B语言,再到C语言,C++,Java等,我们发现,计算机对我们写代码的门槛越来越低,从早期的二进制到现如今的高级语言,我们发现其功能也越来越多,使用的人也越来越多,可以说是流行,所以我们经常提倡人人都可以掌握一些编程。

2.C语言广泛应用于底层开发

①什么是底层开发?

我们常把使用的计算机分为四个层次:最底层是硬件层(CPU,存储器等),第二层是驱动层(位于硬件与操作系统之间,将操作系统和硬件关联起来),第三层是操作系统层(Windows,Linux,DOS等),最顶层是应用层(语音交流、账户管理等)。

底层开发就是指应用层以下的所有开发。比如操作系统层开发、驱动层开发、硬件层开发等都属于底层开发。

②C语言可以上层开发吗?

这当然是可以的,官方定义这句话并不是说C语言不能做上层开发,而是说C语言更适合于底层开发。比如说早期的WPS(Word Processing System,文字处理系统)就采用了C语言来实现的。

三、C语言的发展史

C语言刚出世时不是尽善尽美的,开发并不完善。每个语言都有自己的发展史,C语言也一样。早期的C语言并不是很成熟,随着时间的发展慢慢成熟,直至今天的流行。

计算机语言发展至第三阶段高级语言时,很多厂家都发现C语言比机器语言、汇编语言好用,故纷纷采用C语言编写代码。

但是当时C语言还刚面世,功能并不是很成熟。于是各大公司各自完善C语言功能,分别对C语言进行了定制性开发,以满足对本公司的需要。从而C语言出现了各个版本,鱼龙混杂,导致了C语言的编写规则不统一,最大的麻烦就是A公司的编译器跑不了B公司所写的C语言代码,B公司的编译器也跑不了A公司所写的C语言代码。

于是,在1989年,美国国家标准局发布了C语言的标准,我们常称之为ANSI C,或者是C89。第二年,ISO也制定了标准,我们将它称之为C90C89和C90是我们现如今所普遍采纳的语法,至于C99和C11,它们的语法并不被普遍采纳,很多编译器都跑不过去,甚至C11还能用汉语写代码。

标准制定之后,各大厂家写的的代码就可以相互之间编译运行了,这也是导致现如今C语言流行的重要原因。

四、C语言的编译器

1.编译器作用

我们已经知道,对于C语言(C代码),电脑是不会读懂的,电脑只能读懂的是0/1二进制码,那么我们怎么样才能让电脑看懂我们写的C代码呢?需要将C语言代码转换为二进制,这里就能体现出编译器的作用了,编译器就好比说是我们生活中的翻译,它将我们写的C代码转变为二进制,从而让计算机读懂

2.主流编译器

常见的C编译器有很多,主要有Clang、GCC、WIn-TC、SUBLIME、MSVC、Turbo C等。

笔者编写C语言程序时最习惯用的是Visual Studio 2019,也推荐大家使用。但严格意义上来说,VS不应该属于编译器,而是IDE(集成开发环境)。

IDE不仅拥有编译器的编译功能,还有编写代码、调试代码等功能。VS所采用的编译器是MSVC,DEV C++所采用的编译器是GCC。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aspect of Twilight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值