C语言和其他语言的区别
一、嵌入式开发中为什么选择C语言?
首先嵌入式是在已有的硬件基础上,移植操作系统,而现在操作系统的内核都是用C实现的
二、为什么用C语言开发操作系统内核?
C语言有三大特点(优点):
①C语言具有出色的可移植性,能在多种不同体
系结构的软/硬件平台上运行(单片机,ARM等)
(出色的移植性:
1.一个软件从一个平台切换到另一个平台,修改的代码越少,移植性越好
2.软件能在不同平台下运行
)
②C怨言具有简介紧凑,使用灵活的语法机制,并能直接访问硬件
(还有什么语言访问硬件?
汇编 访问效率高 对硬件初始化用汇编,对硬件做复杂操作用C语言汇编是 低级 语言,没有高级语法,实现不了复杂操作
所以 对硬件进行初始化时,用汇编
读硬件做复杂操作时,用C
)
③C语言具有很高的运行效率
(运行效率高: 不需要通过虚拟机翻译这个过程
)
三、怎么提高代码的移植性?
typedef #define宏定义 结构体等
四、什么是解释性语言?
使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言, java,python等,运行速度会慢一些
五、编译型语言:
使用专门的编译器,针对特定的平台(操作系统)将某种高级语言源代码一次 性“翻译”成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性 程序的格式
如C,C++
六、
C语言面向结构 Java、C++面向对象
解决微观(具体) 解决宏观(整体、庞大)
七、C语言缺点:
复用性差 能否多次使用
维护性差 出问题时要一个一个去检查
扩展性差 不好加功能(修改代码量多)
评价代码的好坏从:复用性,维护性,扩展性,可读性四个方面来判断
八、C标准: K&RC ANSIC/C89 C99 C11
1979 1989 1999 2011
C语言和其他语言的区别的更多相关文章
- C、C++、C#、Java、php、python语言的内在特性及区别
C.C++.C#.Java.PHP.Python语言的内在特性及区别: C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言.C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作 ...
- js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么
js课程 3-10 js中字符串函数数组函数和其它语言中对应函数的区别和联系是什么 一.总结 一句话总结:js中是对象点方法的形式,这些方法都是对象的方法,而在php.java中却不是这样. 1.j ...
- Hybrid App是如何实现网页语言与程序语言的混合?谁占主体?
[编者按]本文作者@徐珂铭,一位看好Html5的移动互联网的从业人士.喜爱玩技术,会点JAVA.HTML及CSS,有自己的想法及姑且能表达想法的文字,因此有了自己的文章. 基于HTML5的Web Ap ...
- 【C语言】01-C语言概述
说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略 为什么iOS开发要先学C语 ...
- Java语言与C++语言的差异总结
Java的设计者曾说过,设计这门语言的灵感主要来自于C++. 世上先有C++,然后才有Java,整个Java语言的发展历史就是一部对C++的填坑史.所以在Java语言学习过程中,将其与C++语言对比是 ...
- C语言与C++语言之间关系
很多时候我们对于C和C++的区别不是很清楚,以至于弄混的情况并不少见.那C语言和C++语言到底是怎么回事呢? 首先,我们来看下百度百科对语言和C++语言描述,相对而说也还算是比较权威的. C语言 C语 ...
- Go语言之Go语言变量
GO 语言变量 Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性. 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名.常量名.函 ...
- 【C语言】C语言简介
目录: 1. [什么是C语言?] 2. [C语言历史] 3. [C语言标准] 4. [C语言特点] 1. 什么事C语言? · C语言是一门高级编程语言,用于人与计算机之间的沟通,就如同人与人之间沟通时 ...
- 初识GO语言——安装Go语言
本文包括:1)安装Go语言.2)运行第一个Go语言.3)增加vim中对Go语言的高亮支持. 1.安装Go语言 本文采用源码安装Go语言,Go语言的源代码在百度网盘 http://pan.baidu.c ...
- 为什么和其他语言相比C语言是快速的语言
初入门的我们经常听见别人说"真正的程序员用C语言编程,C是最快的语言因为它是最靠近及其底层的语言."那么和其他语言相比C语言到底有什么特别的呢? C语言没有什么特别,这就是它快速的 ...
随机推荐
- 深入学习CSS3-flexbox布局
学习博客:https://css-tricks.com/snippets/css/a-guide-to-flexbox/ 学习博客:http://caibaojian.com/demo/flexbox ...
- 《Java数据结构》树形结构
树形结构是一层次的嵌套结构. 一个树形结构的外层和内层有相似的结构, 所以这种结构多可以递归的表示.经典数据结构中的各种树形图是一种典型的树形结构:一颗树可以简单的表示为根, 左子树, 右子树. 左子 ...
- 浅析堆栈段,BBS段,数据段,代码段
文章目录 1. 进程,线程 2. 堆栈段 3. BBS段 4. 代码段 5. 数据段 6. 例子 7. 总结 1. 进程,线程 所谓进程是指在系统中能独立运行并作为资源分配的基本单位,程序段,数据段和 ...
- HttpRunner学习10--hook机制
前言 对于使用过 Python结合Unittest 框架来做自动化测试的同学,应该知道在 Unittest 中,有这样2个方法:setUp() 和 tearDown() ,即前置和后置操作.通常 se ...
- 【每天一题】LeetCode 0107. 自底向上层遍历二叉树
开源地址:点击该链接 题目描述 * 给定一个二叉树,返回其节点值自底向上的层次遍历. * 即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历 * * 例如: * 给定二叉树 [3,9,20,nul ...
- 15.junit测试类使用及注解
1.junit简介 JUnit是一个Java语言的单元测试框架,可以大大缩短你的测试时间和准确度.多数Java的开发环境都已经集成了JUnit作为单元测试的工具. 2.实现junitDemo示例 2. ...
- iOS---OBJC_ASSOCIATION_ASSIGN可能引起的Crash
//OBJC_ASSOCIATION_ASSIGN类似于我们常用的assign,assign策略的特点就是在对象释放以后,不会主动将应用的对象置为nil,这样会有访问僵尸对象导致应用崩溃的风险.为了解 ...
- SQL SERVER查询数据库所有表的大小,按照记录数降序排列
SELECT B.NAME,A.ROW_COUNT FROM SYS.DM_DB_PARTITION_STATS A,SYS.OBJECTS BWHERE A.OBJECT_ID=B.OBJECT_I ...
- OpenLDAP的docker版安装
分为服务器和client的web版. ldap.sh #!/bin/bash -e docker run --name ldap-service -- docker run --name phplda ...
- 微信小程序之启动页的重要性
启动页在APP中是个很常见的需求,为什么对于小程序来说也非常重要呢?首先我描述一下我在开发过程中遇到的一些问题以及解决的步骤,到最后为什么要加启动页,看完你就明白了. 小程序的首页需要展示用户关注的小 ...