以下内容来自公众号逆锋起笔,关注每日干货及时送达

素材来源 | 网络

微信公众号 | 嵌入式专栏

这两年要说最火的编程语言,C语言绝对算其中一个,最近两年 TIOBE 编程语言排行中,C语言都排在第一、二的位置。

本月(11月)TIOBE 编程语言排行,C语言排行第二

地址:

https://www.tiobe.com/tiobe-index/

回到主题,为什么嵌入式软件开发选择C语言?

除了我们看到的C语言很火之外,其实C语言是有一些本质的原因。

C语言特点

C语言相对JAVA、C#这些高级语言,是一种“轻量级”的编程语言。

1.C语言有出色的可移植性,能在多种不同体系结构的软/硬平台上运行。

2.简洁紧凑,使用灵活的语法机制,并能直接访问硬件。

能够直接访问硬件的语言有汇编和C语言,汇编属于低级语言,难以完成一些复杂的功能,但是汇编比C语言访问硬件的效率更高。所以,一般将硬件初始化的工作交给汇编,比较复杂的操作交给C语言。

3.C语言具有很高的运行效率

C语言直接操作底层寄存器,相比JAVA、C#多层封装,使其具有高效的运行效率。

开发工具

开发工具在嵌入式软件开发中有重要的地位,大部分嵌入式软件开发工具都是针对C/C++编程语言。

你会发现很多嵌入式C相关的工具链,而很少有C#、JAVA、PHP这些用于嵌入式的工具链。

在单片机领域,集成开发环境更是多的数不过来,、 、Embedded Studio...等很多。

面向过程VS面向对象

C语言是高级语言中的低级语言,具有高级编程语言的特性,也具有低级语言的优点。

所有,你知道为啥C语言是一种“面向过程”的编程语言了吧?

1.面向过程

面向过程(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和与逻辑。

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。

可以说面向过程是一种基础的方法,它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法

2.面向对象

面向对象的分析根据抽象关键的问题域来分解系统。面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。

3.面向过程和面向对象的区别

以一个人从A地到B地为例:

  • 面向过程就是需要规划路线,了解路况,自己做好一系列的准备。

  • 面向对象就是坐上一辆出租车,告诉司机我要去B地就可以了,不用关心其他的事情。

最后,C语言也有他自身的缺陷,比如代码的复用性差,代码的维护性差,扩展性很差,新增代码时不改变原来的代码。

逆锋起笔专注于程序员圈子,你不但可以学习到java、python等主流技术干货,还可以第一时间获悉最新技术动态、内测资格、BAT大佬的经验、精品视频教程、副业赚钱经验,微信搜索readdot关注!