lecture 12 一结构、联合、枚举 绳伟光 上海交通大学微纳电子学系 2017年04月14日 ERS
lecture 12 —— 结构、联合、枚举 绳伟光 上海交通大学微纳电子学系 2017年04月14日
内容 ■结构 ■联合 ■枚举 君 2
结构 联合 枚举 内容 2
结构(Structure) 结构是另一种聚集类型,与数组有如下区别: 结构的组成元素称为成员(members),成员的类型 不必是相同的 结构的每个成员都有名字,各成员是通过名字访问 的,而不是像数组通过位置访问 ■在其它一些语言中,结构也被称作记录 (records)),其成员被称作域(fields) ■结构适合将一些有关联的数据组织为一个整体
结构(Structure) 结构是另一种聚集类型,与数组有如下区别: 结构的组成元素称为成员(members),成员的类型 不必是相同的 结构的每个成员都有名字,各成员是通过名字访问 的,而不是像数组通过位置访问 在其它一些语言中,结构也被称作记录 (records),其成员被称作域(fields) 结构适合将一些有关联的数据组织为一个整体 3
声明结构变量 ■下面声明两个结构变量part1和 : part2,存储仓库中零件信息: 2000 2001 struct number 2002 int number; 2003 char name [NAME LEN+1]; int on hand; 2004 partl,part2; name 2029 右侧为part1的内存映像 2030 必各个成员依次存储 2031 numberp占据4个字节 on hand 2032 %name占据25个字节 2033 on_hand占据4个字节 4
声明结构变量 下面声明两个结构变量part1 和 part2,存储仓库中零件信息 : 右侧为part1的内存映像 各个成员依次存储 number占据4个字节 name占据25个字节 on_hand占据4个字节 struct { int number; char name[NAME_LEN+ 1]; int on_hand ; } part1, part2 ; 4
结构的抽象 结构可以按照下面两种方式予以图示: number name number name on hand on hand ■ 每个结构表示一个新的作用域(Scope),也就是说,每 个结构开始了一个新的名字空间(Name Space),该空 间中的名字不会与其它空间的同名名字冲突 5
结构的抽象 结构可以按照下面两种方式予以图示: 每个结构表示一个新的作用域(Scope),也就是说,每 个结构开始了一个新的名字空间(Name Space),该空 间中的名字不会与其它空间的同名名字冲突 5