​嵌入式软件开发为什么选择 C 语言?

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

素材来源 | 网络

微信公众号 | 嵌入式专栏

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

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

地址:

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

318685963e22ee0b3daae9e5e6762050.png

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

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

C语言特点

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

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

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

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

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

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

开发工具

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

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

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

面向过程VS面向对象

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

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

1.面向过程

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

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

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

2.面向对象

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

cc5cfacbdd321a192dd5220cdd5e77da.png

面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。微信搜索readdot,关注后回复编程资源获取23种精品资料

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

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

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

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

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

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

嵌入式开发常见问题解决方法

书单 | 嵌入式、C语言编程书籍

微信重要更新,再也不怕被海王骗了..

如何搭建一台永久运行的个人服务器?

MySQL、Redis、MongoDB 网络抓包工具

ec02583279e7bbd98b48077cce547060.png

点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值