嵌入式C编程02结构联合枚举课件_第1页
嵌入式C编程02结构联合枚举课件_第2页
嵌入式C编程02结构联合枚举课件_第3页
嵌入式C编程02结构联合枚举课件_第4页
嵌入式C编程02结构联合枚举课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

结构联合枚举课程安排结构体组合数据类型联合体组合据类型枚举组合据类型数组组合了相同类型的数据那么对于不同类型的数据,如何组合?如何把学生的所有信息组合在一起:姓名、生日、学号、电话号码、地址、成绩。。。

不同类型数据组合结构体类型定义struct

[结构体名]{

类型标识符成员名;类型标识符成员名;

…………….};成员类型可以是基本型或构造型。可以任意多成员struct是关键字,不能省略合法标识符可省:无名结构体分号表明struct定义结束先定义结构体类型,再定义结构体变量

struct_datedate;

struct_stu_infostu;可以通过typedef来简化: 1、typedefstuct_stu_info_tstu_info_t; 2、结构体变量定义需要为结构体变量各个域分配内存,各域内存之间连续分布

printf(“%p\n”,&stu);?printf(“%p\n”,&);?

printf(“%p\n”,&stu.date);?

printf(“%p\n”,&stu.date.year);?

printf(“%p\n”,&stu.phone);?

printf(“%p\n”,&stu.id);?变量内存大小=各域需要内存之和

sizeof(stu)=?结构体变量内存分布结构体变量引用:结构体变量不能整体引用结构体变量比较:结构体变量不能直接用==进行比较结构体变量使用数组变量为结构体类型结构体数组C99标准编译器支持指定域赋值

结构体扩展语法

structstudent{ intnum;charname[20];charsex;intage;charaddr[30];};structstudentstu={.age=20,.num=12,.sex=12};课程安排结构体组合数据类型联合体组合据类型枚举组合据类型下面两种组合结构类型内存分配有什么不同?

sizeof(sdate_t)=?sizeof(udate_t)=?联合体概念union联合体数据类型不同类型的变量共占一段内存(相互覆盖)占用空间取决于占最大空间的成员。

联合体定义union

联合体名{

类型标识符成员名;类型标识符成员名;

…………….};typedeunion

{

类型标识符成员名;类型标识符成员名;

…………….}联合体类型;相同性质的数据中存在不同类型的表示:

数值有整型数、字符型数、浮点型数学生有Linux班学生、Android班学生,(学习科目不同)

联合体应用

联合体应用课程安排结构体组合数据类型联合体组合据类型枚举组合据类型C语言提供了一种称为“枚举”的类型在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。

枚举的概念枚举类型定义的一般形式为:

enum枚举名

{

枚举值表//枚举值为常量};也可以用typedef自定义类型

typedefenum{

枚举值表}枚举类型;

枚举的定义枚举常量 枚举常量是int型的常量,在使用int类型的任何地址都可以使用它

week_tweek=SUN_DAY;printf(“weekis%d\n”,); printf(“sizeof(week_t)is%d\n”,sizeof(week_t));?默认值没有特定指出常量值时,枚举列表中的常量被指定为整数值0、1、2等,依次递增枚举的使用上机实验1、需要记录的学生信息为:姓名、年龄、学号、性别、成绩。定义结构体类型,表示学生信息。定义变量并初始化,求变量的内存大小。2、Linux开发班课程为:ARM、C、Linux;而Android开发班课程为Java、Android。定义联合体类型,表示这2种班别各门功课成绩。定义变量并初始化,求变量的内存大小。3、设计一个学生信息表,需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论