嵌入式系统C语言ppt课件.ppt
《嵌入式系统C语言ppt课件.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统C语言ppt课件.ppt(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统C语言主要内容主要内容一、嵌入式系统开发语言二、C+语言的简单回顾一、嵌入式系统开发语言一、嵌入式系统开发语言l汇编语言lC语言lC+语言lJAVA语言l其它(如nes C等)汇编语言汇编语言l汇编语言的优点l程序运行结果直观l便于对程序的跟踪和调试l程序执行效率很高l程序运行速度很快l汇编语言的缺点l开发效率低下l使用场合l系统初始化、系统任务切换、时序严格的场合C语言语言lC语言是在嵌入式领域中应用最广泛的编程语言,几乎所有的嵌入式开发环境都支持C语言。lC语言是一种高效的语言,用C写的程序执行速度快,占用内存少,经过优化后效率接近汇编程序。lC语言的主要不足是缺乏编程模型,描述
2、复杂逻辑十分困难。同时,程序员可以随意修改程序中的内容,这在提高编程灵活性的同时也带来安全隐患。C+语言语言lC+保留了C语言的强大功能与灵活性,并提供了继承、封装、多态等面向对象技术,为程序设计带来了深及灵魂的变革。l但是,C+语言过于庞大,对于资源受限的嵌入式系统来说,执行效率难于保证。l在1998年,Embedded C+规范正式制度(简称为EC+)。EC+是标准C+的一个子集,它从C+语法中剔除了一些实现复杂和会导致额外负担的语法元素。例如:友元、虚基类、异常处理、模板、命名空间等。同时,在标准库方面,EC+规范也做了删减,剔除了STL和Stream等。lC+在嵌入式系统中主要应用在图
3、形界面开发。JAVA语言语言lJava是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。 lJava 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 二、二、C+语言的简单回顾语言的简单回顾l面向对象程序设计方法概述l类和对象l构造函数和析构函数l继承与
4、派生面向对象程序设计方法概述面向对象程序设计方法概述l面向过程的程序设计方法详细地描述每一瞬时的数据结构及对其的操作过程。l面向对象的程序设计方法将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。 类和对象类和对象l客观世界中任何一个事物都可以看成一个对象对象(Object)l任何一个对象都具有两个要素:属性属性和行为行为l对象的类型称为类类,类代表了某一批对象的共性和特征l类是对象的抽象,对象是类的具体实例声明类类型声明类类型l类类型声明形式:class 类名 private:私有的数据和成员函数;public:公用的数据和成员函数;protected:受保
5、护的数据和成员函数;声明类类型举例声明类类型举例l例子:class Timerpublic:void CalculateTime(); /成员函数void ShowTime();private:int hour; / 数据成员int min;int sec;类成员访问属性类成员访问属性l私有成员(private):只能被本类中的成员函数引用,类外不能调用(友元类例外)。l公用成员(public):既可以被本类中的成员函数所引用,也可以被类的作用域内的其他函数引用。l受保护成员(protected):不能被类外访问,但可以被派生类的成员函数访问。l如果不做属性声明,系统将其成员默认为私有成员(p
6、rivate)。定义对象定义对象l先声明类类型,然后再定义对象类名 对象名 例如:Timer time1;l在声明类类型的同时定义对象l不出现类名,直接定义对象例如:class private : public : time1, time2;对象的动态建立对象的动态建立l前面介绍的方法定义的对象是静态的,在程序运行过程中,对象所占的空间不能随时释放,只有在函数结束时,该对象才释放。l用new运算符动态建立对象,可随时撤销对象,释放内存空间。l用new运算符动态地分配内存后,将返回一个指向新对象的指针的值,即所分配的内存空间的起始地址。用户可以获得该地址,并通过该地址来访问这个对象。如: Tim
7、er *time = new Timer;l在不再需要使用由new建立的对象时,可以用delete运算符予以释放。类外定义成员函数类外定义成员函数l类的成员函数在类体中只写成员函数的声明,而在类的外面进行函数的定义。成员函数在类外定义时,必须在函数名前面加上类名,予以限定。l“:”是作用域限定符,或称作用域运算符,用它声明函数是属于哪个类的。如Timer:CalculateTime();l如果在作用域限定符的前面没有类名,或者函数名前面既无类名又无作用域限定符,则表示该函数不属于任何类,这个函数不是成员函数,而是全局函数,即非成员函数的一般普通函数。如:close() 或 close()成员函
8、数的存储方式成员函数的存储方式l类定义的每个对象所占用的存储空间只是该对象的数据部分所占用的存储空间,不包括函数代码所占用的存储空间,如下图: 对象 1 对象 2 对象 n 数据 1 数据 2 数据 n 公用函数代码 对象成员的引用对象成员的引用l通过对象名和成员运算符访问对象中的成员例如:time1.CalculateTime();l通过指向对象的指针访问对象中的成员例如:Timer *p = &time1; p-CalculateTime();在p指向t的前提下,p-CalculateTime()和(*p). CalculateTime()和time1. CalculateTime()三者
9、等价。l通过对象的引用变量访问对象中的成员例如:Timer &time2 = time1; time2. CalculateTime();上例定义了time1对象的引用变量time2,它们共占同一段存储单元。this指针指针l在每一个成员函数中都包含一个特殊的指针this,它是指向本类对象的指针,它的值是当它是指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址。前被调用的成员函数所在的对象的起始地址。lthis指针是隐式使用的,它是作为参数被传递给成员函数。l可以用*this表示被调用的成员函数所在的对象,*this即当前的对象。如:return(*this).hour);数
10、据成员初始化数据成员初始化l类的数据成员是不能在声明类时初始化的,因为类不是一个实体,而是一种抽象类型,并不占存储空间l如果一个类中所有的成员都是公用的,可以在定义对象时对数据成员进行初始化。例如:class Time public:hour;minute;sec;Time t1 = 14, 13, 45 ;l如果数据成员是私有的或者受保护的成员,只能使用构造函数初始化构造函数构造函数l构造函数是一种特殊的成员函数,与其它成员函数不同,不需要用户调用它,而是在建立对象时自动执行。构造函数的名字必须与类名同名,不能由用户任意命名。它不具它不具有任何类型,不返回任何值。有任何类型,不返回任何值。构
11、造函数的功能由用户定义,用户根据初始化的要求设计函数体和函数参数。例如:class Time public:Time() hour = 0; minute = 0; sec = 0; private:hour; minute; sec;带参数的构造函数带参数的构造函数构造函数名(类型1 参数1,类型2 参数2,)class Time public:Time( int, int, int ); private:hour; minute; sec;Time:Time( int h, int m, int s ) hour = h; minute = m; sec = s; Time t1( 14,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 语言 ppt 课件
限制150内