侵权投诉

嵌入式选择用C语言开发的原因

2018-04-03 10:54 次阅读

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

1.从语言特点来说:

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

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

能够直接访问硬件的语言有:汇编和C语言

汇编属于低级语言,难以完成一些复杂的功能,但是汇编比C语言访问硬件的效率更高

所以,一般将硬件初始化的工作交给汇编,比较复杂的操作交给C语言

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

2.嵌入式开发中的地位——开发工具

3.高级语言中的低级语言:面向过程VS面向对象

面向过程:

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

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

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

面向对象:

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

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

面向过程和面向对象的区别:

以一个人从A地到B地为例,面向过程就是需要规划路线,了解路况,自己做好一系列的准备;而面向对象就是坐上一辆出租车,告诉司机我要去B地就可以了,不用关心其他的事情。

最后,c语言也有他自身的缺陷,比如代码的复用性差,代码的维护性差,扩展性(新增代码时不改变原来的代码)很差,你知道为什么吗?

原文标题:所有操作系统的内核几乎都是用C语言写的,这不全是嵌入式选择用C语言开发的原因。

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

如何给C语言增加几个位操作函数

在汇编语言中有直接对位进行操作的指令,如置位、复位、位取反、测试某一位等,这对于硬件操作十分方便,在C语言中尽管也提供了...
发表于 07-14 18:15 96次 阅读
如何给C语言增加几个位操作函数

C语言的几种位操作运算

在汇编语言中有直接对位进行操作的指令,如置位、复位、位取反、测试某一位等,这对于硬件操作十分方便,在C语言中尽管也提供了...
发表于 07-14 18:14 86次 阅读
C语言的几种位操作运算

使用ENC28J60实现嵌入式网络接口的设计论文说明

设计了以ENC28J60 为核心的以太网接口实现方案, 描述了该系统硬件架构的设计方法。在简要介绍了....
发表于 07-14 17:09 16次 阅读
使用ENC28J60实现嵌入式网络接口的设计论文说明

嵌入式软件开发ARM中断实验的报告资料说明

一、实验目的(1)、学会使用 Embest IDE 编写简单的 C语言程序并进行调试;(2)、了解不....
发表于 07-14 16:42 9次 阅读
嵌入式软件开发ARM中断实验的报告资料说明

香橙派开发板Orange Pi 4在Linux系统下SPI接口的使用说明

香橙派4这款电脑开发板前面已介绍过,不再赘述,详细参数可以看下图↓↓↓ 本篇介绍下香橙派4在linux系统下如何使用SPI接...
发表于 07-14 12:22 220次 阅读
香橙派开发板Orange Pi 4在Linux系统下SPI接口的使用说明

单片机C语言延时程序的注意事项

标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语....
发表于 07-14 11:13 17次 阅读
单片机C语言延时程序的注意事项

单片机C语言代码编写技巧

下面发一些我在网上看到的单片机C语言代码编写技巧和自己的一些经验来和大家分享;
发表于 07-14 11:02 34次 阅读
单片机C语言代码编写技巧

C语言的进阶学习课件资料合集

本文档的主要内容详细介绍的是C语言的进阶学习课件资料合集包括了:第1节-数据的存储,第2节-指针的进....
发表于 07-14 08:00 16次 阅读
C语言的进阶学习课件资料合集

具备哪些知识才能成为真正的嵌入式工程师???

哪些知识的具备才能成为真正的嵌入式工程师????...
发表于 07-13 10:40 23次 阅读
具备哪些知识才能成为真正的嵌入式工程师???

Keil uVision4的使用详解教程概述

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有....
发表于 07-13 08:00 17次 阅读
Keil uVision4的使用详解教程概述

分享 郭天祥 十天学会C语言和51单片机视频教程+代码

郭天祥 郭天祥 十天学会C语言和51单片机 详细教程源码 回复可得 链接:https://pan.baidu.com/s/1uWWpG-o_EVscRZ3ys...
发表于 07-12 21:31 94次 阅读
分享 郭天祥 十天学会C语言和51单片机视频教程+代码

如何用STM32连接电脑的的烧录线给ESP8266烧写固件

如题,我现在有一个STM32F103的开发板和ESP8266WIFI模块,但是没有ESP8266的USB烧录模块,请问怎么才能用STM...
发表于 07-12 19:25 77次 阅读
如何用STM32连接电脑的的烧录线给ESP8266烧写固件

DSP芯片与其它芯片的最大区别在于什么?

让你说出知道的芯片的名称,你可能会一时想不起,也不能一一罗列DSP芯片都有哪些。或许是对DSP芯片深....
发表于 07-12 11:34 200次 阅读
DSP芯片与其它芯片的最大区别在于什么?

如何把C++的源程序改写成C语言

由于C++解释器比C语言解释器占用的存储空间要大500k左右。为了节省有限的存储空间,降低成本,同时也为了提高效率,将用C+...
发表于 07-11 09:34 821次 阅读
如何把C++的源程序改写成C语言

瑞萨电子:嵌入式终端与人工智能融合改变工业格局

瑞萨电子在汽车、工业、基础设施和物联网等多个领域提供了专业可信的嵌入式设计与半导体解决方案,面对工业....
的头像 E4Life 发表于 07-10 18:47 1866次 阅读
瑞萨电子:嵌入式终端与人工智能融合改变工业格局

LabView开发嵌入式系统的的挑战及应用解决方案

随着嵌入式系统的快速发展和复杂性的不断增加,基于文本的编程方式所面临的挑战愈发严峻,这种编程模式在将....
发表于 07-10 18:00 120次 阅读
LabView开发嵌入式系统的的挑战及应用解决方案

基于LabVIEW平台和CompactRIO开发移动机器人腿部动态步态

腿部和车轮这两种方法在地面运动平台上被广泛采用。经过漫长的演变过程,大多数陆地动物的腿部都灵活有力,....
发表于 07-10 17:16 159次 阅读
基于LabVIEW平台和CompactRIO开发移动机器人腿部动态步态

关于嵌入式Linux项目开发内容

 对于嵌入式Linux开发所需要的知识,也正是处理数据流转时所需要的技术, 对于嵌入式Linux项目....
发表于 07-10 16:57 60次 阅读
关于嵌入式Linux项目开发内容

关于ARM的三种中断调试方法介绍

在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备。编辑工程文件,....
发表于 07-10 16:01 51次 阅读
关于ARM的三种中断调试方法介绍

基于FPGA和Nios II处理器IP软核实现实现SD卡接口和文件系统的设计

在嵌入式系统或移动设备上使用SD卡,接口的构建和文件系统实现是必须解决的问题。本文探讨在Cyclon....
发表于 07-10 10:19 130次 阅读
基于FPGA和Nios II处理器IP软核实现实现SD卡接口和文件系统的设计

使用C语言写出的九九乘法表

本文档的主要内容详细介绍的是使用C语言写出的九九乘法表资料合集免费下载。
发表于 07-10 08:00 26次 阅读
使用C语言写出的九九乘法表

单端口SRAM与双端口SRAM电路结构

SRAM是随机存取存储器的一种。所谓的静态是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。SRAM不需要刷新电...
发表于 07-09 14:38 1501次 阅读
单端口SRAM与双端口SRAM电路结构

搞嵌入式,软件和硬件哪个更重要?

据王利涛表示,很多嵌入式初学者认为,学嵌入式,就是学习ARM,就是学习开发板。买一块开发板,然后在上....
的头像 玩转单片机 发表于 07-09 09:10 306次 阅读
搞嵌入式,软件和硬件哪个更重要?

C语言之结构体的声明与定义

我们刚刚申请了一个名叫Info的结构体类型,那么理论上我们可以像声明其他变量的操作一样,去声明我们的....
的头像 玩转单片机 发表于 07-09 09:06 171次 阅读
C语言之结构体的声明与定义

如何把C++的源程序改写成C语言

由于C++解释器比C语言解释器占用的存储空间要大500k左右。为了节省有限的存储空间,降低成本,同时也为了提高效率,将用C+...
发表于 07-08 20:51 284次 阅读
如何把C++的源程序改写成C语言

香橙派开发板Orange Pi 4在Linux系统下如何使用PWM

香橙派4电脑开发板使用Rockchip RK3399主控芯片,拥有双通道4GB LPDDR4内存 ,板载16GB EMMC flash存储,支持运...
发表于 07-08 20:51 1626次 阅读
香橙派开发板Orange Pi 4在Linux系统下如何使用PWM

基于ARM嵌入式人机交互的设计方案

人机交互过程中获得人的动作是一个关键,为了实现手部姿态的实时跟踪控制,分析了手形及手部的运动形式和特....
发表于 07-08 18:09 43次 阅读
基于ARM嵌入式人机交互的设计方案

概述ARM处理器的工作状态和工作模式

为了能够体现ARM的特点和性能,ARM处理器有两种工作状态和7种工作模式。
发表于 07-08 15:29 60次 阅读
概述ARM处理器的工作状态和工作模式

如何使用ARM9实现串行通讯的设计方案

嵌入式是以应用为中心,以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗....
发表于 07-08 14:31 27次 阅读
如何使用ARM9实现串行通讯的设计方案

嵌入式Linux系统篇:RealARM2410技术手册

  RealARM2410是基于三星公司S3C2410X 高性能ARM 处理器的嵌入开发平台,旨在为....
发表于 07-07 16:35 43次 阅读
嵌入式Linux系统篇:RealARM2410技术手册

简易嵌入式计算器的设计方案

  随着电子科技技术的不断发展在当今社会计算器已深入人们生活中给人们的生活带来了方便推动了社会的发展....
发表于 07-07 16:25 55次 阅读
简易嵌入式计算器的设计方案

单片机C语言程序设计的详细资料

C语言目前己成为电子工程师进行单片机系统开发时的常用编程语言。用C语言来编写目标系统软件,会大大缩短....
发表于 07-07 14:48 66次 阅读
单片机C语言程序设计的详细资料

智能安防:网络视频存储服务器的重要性

网络视频存储服务器是一种用于视频和音频数据压缩、存储和处理的嵌入式设备。它广泛应用于远程监控和bbb....
的头像 如意 发表于 07-07 10:40 144次 阅读
智能安防:网络视频存储服务器的重要性

Linux主要应用在那些领域

日前,国际超算大会发布了最新的全球TOP500超级计算机列表,其中最著名的是日本超级计算机“ Fug....
的头像 Wildesbeast 发表于 07-04 11:38 436次 阅读
Linux主要应用在那些领域

什么是嵌入式与物联网,物联网与嵌入式之间的关系

互联网着重信息的互联互通和共享,解决的是人与人的信息沟通问题;物联网则是通过人与人、人与物、物与物的....
发表于 07-03 14:23 101次 阅读
什么是嵌入式与物联网,物联网与嵌入式之间的关系

浅谈2020年六大主流编程语言

目前,计算机语言的总数总计达9000种。但是,其中只有50种编程语言是较为流行的。今天,小编就给大家....
的头像 如意 发表于 07-03 11:36 386次 阅读
浅谈2020年六大主流编程语言

单片机教程之C语言的程序设计说明

C51是在标准C的基础上,根据单片机存储器硬件结构及内部资源,扩展了相应的数据类型和变量,而C51在....
发表于 07-02 17:45 59次 阅读
单片机教程之C语言的程序设计说明

嵌入式必看 Linux内存管理工作原理

机器的内存是有限资源,而进程数量是无法确定的,如果在某些时候已经启动的进程占据了所有内存空间,此时就....
发表于 07-02 15:10 232次 阅读
嵌入式必看 Linux内存管理工作原理

c语言宏定义的使用方法

当宏作为常量使用时,C程序员习惯在名字中只使用大写字母。但是并没有如何将用于其他目的的宏大写的统一做....
发表于 07-02 15:04 106次 阅读
c语言宏定义的使用方法

C语言二级指针的用法与原理

提到指针,我们都知道指针是用来存储一个变量的地址。所以,当我们定义了一个指向指针的指针的时候(poi....
发表于 07-02 14:52 113次 阅读
C语言二级指针的用法与原理

曙光中标分布式块存储产品集采 中国移动给大订单

近年来,分布式存储技术在电信行业得到广泛的推广,在云化转型、 IoT、5G 等新兴业务,虚拟化资源池....
发表于 07-02 09:07 75次 阅读
曙光中标分布式块存储产品集采  中国移动给大订单

嵌入式ICE-RT逻辑和嵌入式跟踪宏核(ETMS)系列

ARM的Jazelle技术使Java加速得到比基于软件的Jaarm处理器阶梯图va虚拟机(JVM)高....
的头像 ARM视频 发表于 07-02 08:36 917次 观看
嵌入式ICE-RT逻辑和嵌入式跟踪宏核(ETMS)系列

8位的MCU的情形又如何,很多嵌入式工程师都有一些误解

不少人会认为既然现在市场的宠儿是32位的MCU,厂商们是不是都没有投入研发资源在8位产品上了。这么想....
的头像 玩转单片机 发表于 07-01 16:58 345次 阅读
8位的MCU的情形又如何,很多嵌入式工程师都有一些误解

梳理嵌入式Linux的一些知识

学单片机的朋友有些已经有一些Linux基础了,但也不乏有些朋友没用过Linux,甚至有些初学的读者朋....
的头像 玩转单片机 发表于 07-01 16:56 505次 阅读
梳理嵌入式Linux的一些知识

C语言和PHP,新手选择哪个比较好?

计科专业从事嵌入式开发多年,从现在的市场行情以及就业的机会上讲php的就业空间还是大于C语言,但并不....
的头像 如意 发表于 07-01 16:15 157次 阅读
C语言和PHP,新手选择哪个比较好?

基于PSoC3可编程嵌入式片上系统的智能手机电池充电器

  PSoC®3是一款真正的可编程嵌入式片上系统,在单个芯片上集成了可配置的模拟和数字外设功能,存储....
的头像 Cypress视频 发表于 07-01 12:23 317次 观看
基于PSoC3可编程嵌入式片上系统的智能手机电池充电器

Python的发展趋势,未来可期

首先,当前Python作为一门流行程度比较高的全场景编程语言,在IT互联网行业和一部分传统行业已经有....
的头像 如意 发表于 07-01 10:19 282次 阅读
Python的发展趋势,未来可期

采用MPLAB代码配置器配置ADC及FVR

MPLAB 集成开发环境(IDE)是综合的编辑器、项目管理器和设计平台,适用于使用Microchip....
的头像 Microchip视频 发表于 07-01 10:08 584次 观看
采用MPLAB代码配置器配置ADC及FVR

CompactRIO系统拥有坚固的硬件架构

CompactRIO是美国国家仪器(NI)公司生产的一款可重新配置的嵌入式测控系统。CompactR....
的头像 NI视频 发表于 07-01 08:20 854次 观看
CompactRIO系统拥有坚固的硬件架构

怎么样才能在Keil C51环境下实现64位浮点库的设计

为解决Keil C51环境下无法进行64位双精度计算的问题,采用分部存储和分部计算的方法,设计了在K....
发表于 07-01 08:00 22次 阅读
怎么样才能在Keil C51环境下实现64位浮点库的设计

怎么样才能使用Keil C51开发大型嵌入式程序

 结合在8051系列单片机平台上的实际开发应用的经验,介绍用 Keil C在8051单片机上进行大型....
发表于 07-01 08:00 22次 阅读
怎么样才能使用Keil C51开发大型嵌入式程序

详谈选择排序算法的定义和过程

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数....
的头像 如意 发表于 06-30 17:06 112次 阅读
详谈选择排序算法的定义和过程

KUKA.ProConOS软件功能简史

ProConOS是一款高性能PLC运行时间引擎,专为基于嵌入式和PC的控制应用而设计。ProConO....
的头像 机器人及PLC自动化应用 发表于 06-30 15:54 193次 阅读
KUKA.ProConOS软件功能简史

C语言模拟实现memmove函数

memmove用于从src拷贝count个字节到dest,如果目标区域和源区域有重叠的话,memmo....
的头像 如意 发表于 06-29 17:53 124次 阅读
C语言模拟实现memmove函数

C语言模拟实现memcpy函数

memcpy指的是c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起....
的头像 如意 发表于 06-29 17:29 201次 阅读
C语言模拟实现memcpy函数

ISD4002语音录放电路的设计C语言程序免费下载

  本文档的主要内容详细介绍的是ISD4002语音录放电路的设计C语言程序免费下载。
发表于 06-29 17:20 21次 阅读
ISD4002语音录放电路的设计C语言程序免费下载

简易LCD示波器设计的C语言程序免费下载

本文档的与内容详细介绍的是简易LCD示波器设计的C语言程序免费下载。
发表于 06-29 17:20 34次 阅读
简易LCD示波器设计的C语言程序免费下载

液晶GPS定位信息显示器的设计C语言程序免费下载

本文档的主要内容详细介绍的是液晶GPS定位信息显示器的设计C语言程序免费下载。
发表于 06-29 17:20 42次 阅读
液晶GPS定位信息显示器的设计C语言程序免费下载

超声波测距器设计的C语言程序免费下载

本文档的主要内容详细介绍的是超声波测距器设计的C语言程序免费下载。
发表于 06-29 17:20 42次 阅读
超声波测距器设计的C语言程序免费下载

远程电话控制器设计的C语言程序免费下载

本文档的主要内容详细介绍的是远程电话控制器设计的C语言程序免费下载。
发表于 06-29 17:20 40次 阅读
远程电话控制器设计的C语言程序免费下载