第9章结构体和共用体第10章位运算
共用体
枚举类型
用typedef进行类型定义
2017/8/13
第18次课
授课班级:供电专101/102、集控专101/102、测控本101/电子本101
教学目的:
掌握共用体的概念及数据存储特点、变量的定义、成员的引用;
了解枚举的概念及枚举类型的定义及使用;
掌握用typedef类型数据类型的方法。
了解简单几种位运算方法;
重点:
共用体变量的定义及使用;
typedef类型数据类型的方法;
难点:
共用体的特点及其与结构体的区别。
教具:
ppt课件、屏幕投影
教学过程:
问题引入、内容讲解、提问、小结、作业
共用体
共用体类型的定义
一般形式为:
union 共用体名
{
成员说明列表
};
例如:union data
{ char ch;
int i;
float f;
};
,再定义共用体变量。
例如:
union data
{ char ch;
int i;
float f;
};
union data a,b,c;
a
4个字节
。
例如:
union data
{ char ch;
int i;
float f;
}a,b,c;
,省略共用体类型名,直接定义共用体变量。
例如:
union
{ char ch;
int i;
float f;
}a,b,c;
共用体成员的引用
引用格式:
例如:
引用上一节所定义的共用体变量a的成员:
注意,一个共用体变量不是同时存放多个成员的值,而只能存放其中的一个值,这就是最后赋给它的值。
例如:
='y'; =278; =;
共用体变量中最后的值是:
也可以通过指针变量引用共用体变量中的成员。
例如:
union data *pt,x;
pt=&x;
pt->ch='y';
pt->i=278;
pt->f=;
共用体成员的引用
总结:共用体不同于结构体的特点
共用体变量所占的内存单元的字节数不是所有成员的字节数之和,而是等于成员中最长字节的成员所占内存空间的字节数。
变量中不能同时存放多个成员值,只是可以根据需要用变量存放一个成员类型数据。
可以对共用体变量进行初始化,但在花括号中只能给出第一个成员的初值。
union memo
{char ch;
int i;
float x;
}y1={'a'};
枚举类型
在实际应用中,有的变量只有几种可能的取值。如表示星期、月份的名称等。为了提高程序描述问题的直观性,ANSI C加入允许程序员定义枚举类型的机制。
所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。枚举类型定义的一般形式为:
enum 枚举名{标识符1,标识符2,…,标识符n};
例:
enum weekname{Sun,Mon,Tue,Wed,Thu,Fri,Sat};
第9章结构体和共用体(2)第10章位运算 来自淘豆网www.taodocs.com转载请标明出处.