嵌入式技术及其应用—C程序设计2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式技术及其应用—C程序设计 第二回 哈尔滨工程大学 水声工程学院 方尔正 内容提要 基础知识之二—指针 变量与地址 基础知识之二—结构体 1.先声明类型,再定义变量名。 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; struct student student1,student2; 结构体变量占内存单元字节数的计算: 各数据项占字节数之和。 基础知识之二—结构体 (1)类型与变量不同,只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。 (2)结构体中成员,可以单独使用,相当于普通变量。 (3)?成员也可以是一个结构体变量。 基础知识之二—结构体 不能将一个结构体变量作为一个整体进行输入和输出 成员引用方式: 结构体变量名. 成员名 如果成员本身又是一个结构体类型,则一级一级表示。 结构体变量成员的使用与普通变量同。 可以引用成员地址,也可以引用结构体变量的地址。 基础知识之二—结构体 结点:链表中的元素 链表的一个结点中应包含一个指针变量,用它存放下一个结点的地址。 struct student { int num; float score; struct student *next; } 特点:(1)链表有一个“头指针”变量 head,存放一个地址,为链表第一个结点地址。 (2)链表最后一个元素地址部分不再指向其他元素,为空“NULL” 基础知识之二—枚举 所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围。 1.定义类型: enum weekday{sun,mon,tue,wed,thu,fri,sat}; 2.定义变量: (1)??? 先定义类型,再定义变量 enum weekday week_end,week_day; (2)??? 直接定义变量 enum {sun, mon,tue,wed,thu,fri,sat} week_day,week_end; 说明: (1)??? 变量的取值只能是枚举元素之一。 (2)??? 枚举元素为常量,不能对枚举常量赋值。 (3)??? 枚举元素按定义时的顺序,它们的值为0,1,2…… 一个整数不能直接赋给一个枚举变量,需强制类型转换后赋值。 基础知识之二—联合体 1.定义的一般形式: union 共用体名 { 成员表列 }变量表列; 2.定义变量的方式:(1)先声明类型,再定义共用体变量 (2)在声明类型的同时定义变量 (3)直接定义 例 union data { int i; char ch; float f: }a, b, c; 3.引用成员 例 a.i a.ch 4.??? 特点: ???????? 每一个瞬时,只有一个成员起作用 ???????? 变量长度为最长的成员长度 ???????? a、a.i、a.ch等指同一个地址 不能在定义共用体变量时初始化 基础知识之二—程序的内存空间 基础知识之二—程序的内存空间 嵌入式系统的典型内存分布 基础知识之二—程序的内存空间 基础知识之二—程序的内存空间 栈:栈是向低地址扩展的数据结构,是一块连续的内存的区域。栈顶的地址和栈的最大容量是系统预先规定好的,在INDOWS下,栈的大小是1M,如果申请的空间超过栈的剩余空间时,将提示overflow。 堆(heap):堆的地址由低向高增长,是不连续的数据结构,由malloc,new等分配的空间的地址,堆的大小受限于计算机系统中有效的虚拟内存。 函数的存储器属性 参数---栈中保存 局部变量---栈中保存 递归调用---需要大量的栈空间 基础知识之二—程序的内存空间 思考题 例 void?main() { ????char?a?=?1; ????char?c[]?=?1234567890; ????char?*p?=1234567890; ????a?=?c[1]; ????a?=?p[1]; ????return; } 对应的汇编代码 10: a = c[1];8A 4D F1 mov cl,byte ptr [ebp-0Fh] 0040106A 88 4D FC mov byte ptr [ebp-4],cl 11: a = p[1]; 0040106D 8B 55 EC mov edx,dword p

文档评论(0)

书房 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档