所有操作系统的内核几乎都是用C语言写的,原因何在?
2018-03-11 00:00
239 查看
嵌入式开发为什么选择C语言?
1.从语言特点来说①C语言有出色的可移植性,能在多种不同体系结构的软/硬平台上运行。②简洁紧凑,使用灵活的语法机制,并能直接访问硬件能够直接访问硬件的语言有:汇编和C语言汇编属于低级语言,难以完成一些复杂的功能,但是汇编比C语言访问硬件的效率更高。所以,一般将硬件初始化的工作交给汇编,比较复杂的操作交给C语言。③C语言具有很高的运行效率。
2.嵌入式开发中的地位——开发工具
3.高级语言中的低级语言:面向过程VS面向对象
面向过程:
“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。
可以说面向过程是一种基础的方法,它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
面向对象:
面向对象的分析根据抽象关键的问题域来分解系统。面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。
面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。
面向过程和面向对象的区别:
以一个人从A地到B地为例,面向过程就是需要规划路线,了解路况,自己做好一系列的准备;而面向对象就是坐上一辆出租车,告诉司机我要去B地就可以了,不用关心其他的事情。
最后,C语言也有他自身的缺陷,比如代码的复用性差,代码的维护性差,扩展性(新增代码时不改变原来的代码)很差。
1.从汇编、C语言为起点,十年FPGA开发设计经验总结2.成为一个软硬件通吃的技术大牛,有一点很重要!3.如何设计嵌入式系统?带你理解一个小型嵌入式操作系统的精髓4.C语言访问MCU寄存器,有两种方式可以采用!5.2018年第3期《单片机与嵌入式系统应用》电子刊新鲜出炉!6.了解51单片机执行指令的过程,你会理解更深刻!
免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。
相关文章推荐
- 【c语言】给一组数,只有一个数只出现了一次,其他所有数都是成对出现的。找出这个数
- 【c语言】 给一组数,有两个数只出现了一次,其他所有数都是成对出现的。找出这两个数
- 几乎所有A股顶尖高手都是保守的
- 几乎所有A股顶尖高手都是保守的
- c语言标准库低通的qsort函数不适宜所有排序任务的原因
- 我从来不认为下面的博客是自己原创的 , 几乎所有的东西都是学习别人的 . 总有一天 ,我会将我的思想公诸于世 !
- 【C语言】【笔试题】找出一组数据中成单出现的数字,其他所有数字都是成对出现的。(移位)
- C语言:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(
- 【C语言】给一组组数,只有两个数只出现了一次,其他所有数都是成对出现的,找出这两个数。
- C语言:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(
- 自制操作系统Antz day06——内核初步,引入c语言
- 【C语言】【笔试题】找出一组数据中成单出现的数字,其他所有数字都是成对出现的。(移位)
- MyEclipse,alt+/除了sysout能够提示System.out.print()以外,其他所有的都是no default proposals 这是什么原因,别告诉我那个什么设置key,我的A
- tomcat启动成功,但是访问所有的页面都是空白的,不知道什么原因…
- 美化你的网页滚动条几乎所有网页的滚动条都是默认的灰色,如果把它的颜色换换,来点另类的,相信一定会使网页更加靓丽。我们只要在网页代码 之间插入下面的代码,即可随心所欲地更改颜色了。
- php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
- SQL 数据库 学习 003 什么是数据库? 为什么需要数据库?是不是所有的软件都是用Sql Server?
- [转]linux操作系统的内核态和用户态
- 所有经历都是一种恩赐
- c语言的main的所有写法(转)