初识C语言

  本章的内容全是介绍,阅读起来有些许的乏味。我阅读的时候觉得为什么不直接就给我介绍C语言实质性的东西。现在基于记录和分享的目的仔细的看了一遍,这篇内容还是有一些可以吸收的。

C的起源

  1972年,贝尔实验室丹尼斯·里奇(Dennis Ritch )和肯·汤普逊(Ken Thompson )在开发UNIX操作系统时设计了C语言。然而,C语言不完全是里奇突发奇想而来,他是在B语言(汤普逊发明)的基础上进行设计。至于B语言的起源,那是另一个故事。C语言设计的初衷是将其作为程序员使用的一种编程工具,因此,其主要目标是成为有用的语言。
  大家可以问问度娘贝尔实验室好像发明了不少好东西。

选择C语言的理由

  我认为现在C仍旧热门的原因在于对比其他的高级语言它所拥有的对底层硬件的控制,代码量紧凑。其实汇编语言代码更紧凑,对硬件的控制更高效,但是汇编不通用,相比于C语言学习的难度稍高,最基础也需要了解芯片架构和所支持的指令集,寄存器。而且相对来说付出的时间成本更多,求职的时候C比汇编的岗位往往会多一点。可能汇编是一个很大的加分项,但是C会更通用一些。其他的高级语言也各有特点。

计算机语言的发展

  有关与高级语言和汇编语言,我简单说明一下。计算机是由硬件电路构成的,里面所有的运算和数据存储都是基于高低电平和基础的逻辑电路实现的。不同的芯片硬件电路也是不一样发的。计算机只能识别某个地方高电平或低电平,所以计算机只能识别两种状态。也是基于这个原因最早期的程序员使用的数字0和1这两位数字告诉计算机各种复杂的数据和操作,计算机也只认识0和1,在他的内部存储的也是高低电平(0和1),这些0和1组成的语言用于程序员和计算机的通讯,称之为机器语言
  想想我们现在需要计算机处理这么复杂的运算,打游戏,看视频,直播等等,如果这些都是0和1编写成的,程序员估计眼睛全都1000度以上了。所以聪明的程序员发明了汇编语言,使用人类能理解的英文字符来编程,这些英文字符就成为汇编指令,使用的汇编指令汇编语言。但是计算机不认识英文字符,所以程序员编写了编译器。编译器负责将汇编指令翻译成一条条的01组成的机器指令,控制计算机。但是不同硬件的电路不同,所以同样的汇编指令就要在不同的编译器上翻译成不同的机器指令。实际上不同的芯片架构,汇编只能也可能有细微的差别。但是大致的操作都是一样的。
  想一想,机器语言本来有两个不友好的地方:

  • 全是由0和1组成,不容易编写,出错不容易排查出来,一堆01指令,谁背的出来,圆周率你能背几位
  • 不同芯片内部电路不同,实现同样功能所使用的01机器指令也不同
      汇编语言已经解决了第一个,但是第二个还没有解决。后面又开发出了高级语言解决了这个问题。并且还更容易被人类理解学习。
      但是,计算机内部执行的还是机器指令。只是现在由编译器/解释器来执行高级语言->机器指令 的翻译。,高级语言只是为了方便人类使用计算机。更容易去编写程序。

C语言标准

  任何语言都在使用中发现不足,加以改进的。我们的汉字也一样。C语言在发展过程中由几个经典的版本C99和C11,每个版本都基本兼容前一个版本,但是会有一些被淘汰的不常用的概念。我们现在使用的基本上都是C98/C99/C11,但是许多特性还没有使用。

编程机制

  这一章大家仔细的阅读原书1.8章节。了解源代码,目标代码,可执行程序之间的关系。以及1.7章节的C语言编程步骤。我认为这两个章节还是有仔细阅读的必要,特别对于初学者来说。对概念模糊往往会导致一些低级的错误。

你可能感兴趣的:(C,c语言,开发语言)