- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言 第八章 位域课件
第八章 位域,联合,枚举,定义类型及预处理功能
制作人 计科一班 王建政
躬斡粟恕窥就逾告棱促丈孟栖弃单爱氰婆槐纸哉护山袒闽画圈晚雀芝叉伊C语言 第八章 位域课件C语言 第八章 位域课件
目录
沾迎达炼挽嗣短液院路昔挠拌膝铬贡锁瓷镭遁娄宽灸十库惦痕钎肆疵迸帮C语言 第八章 位域课件C语言 第八章 位域课件
1.1位域
位域是结构成员的特殊形式,它需要定义位的长度,它是整型数存储区中相连的位的集合。通过位域可以方便的用成员访问小于一个字节的存储区。
它的一般形式为:
struct 结构名
{
类型 变量名 1:长度;
类型 变量名 1:长度;
......................
}
蒲说旧芽搭吴免遁齿恃嗡缨溅通码迁闭厚耸销秧怂音掐吠磺拖搏融咏涕芽C语言 第八章 位域课件C语言 第八章 位域课件
1.1 位域
其中,冒号:表示使用的是位域,其后的长度表示需要分配的存储单元位数。
域变量必须定义为int或unsigned.
位域变量有某些限制。比如,不能去一个位域变量的地址;不允许超越整型量边界。例:
下面定义非法:
struct flg
{
unsigned flag1:8;
unsigned flag2:12;
}fcode;
这里,flag1和flag2的位数超越整型(16位)的边界。应该写成;
struct flg
{
unsigned flag1:8;
unsigned: 0;
unsigned flag2:12;
}fcode;
这里,第二个成员省略位域变量名,其长度说明为0.表示该位域变量后面定义的位域从下一个字边界开始存放。
膏束两蛰意竖纤杆逆印某皆卯供莆酣致覆观朋跑扭鞋奖廊消茵校将两绸衬C语言 第八章 位域课件C语言 第八章 位域课件
1.2结构嵌套
woker
name[10]
age
wage
payday
结构成员不仅可以是位数可变的位域变量,而且可以是另一个结构类型变量。这种情况被称为嵌套式结构。例如:
下面的结构变量payday就是嵌套在结构person内的一个嵌套式结构变量。
struct date
{
int month;
int day;
int year;
};
struct person
{
char name[10];
int age;
float wage;
struct date payday;
}woker;
month
day
year
成员变量
成员变量
成员变量
结构成员变量
子成员
子成员
子成员
霖灼涪阁发卖删兔笑水思脯懦椰斗朽虐嵌钓张拂像盔竣卡蘑幅睡框樱丢贴C语言 第八章 位域课件C语言 第八章 位域课件
1.2结构嵌套
如果要给woker的各成员赋值,可以使用下面程序段:
显然对每个结构成员的访问,在结构嵌套情况下,必须从最外到最内层逐个列出结构成员变量名。
在定义时可以用同样的方法赋初值。
woker={Li_ming,34,350,11,1,1993};
woker.payday.year=1993
胳轿绦刽醇砧穆挖酗桐完泌律压摈躬革勺酋俭眼贼佐剩祷缚沮干煎盎数页C语言 第八章 位域课件C语言 第八章 位域课件
2.1联合
联合是一种与结构相类似的构造类型,联合与结构一样,可以包括不同类型和长度的数据。联合与结构的主要区别在于, 联合类型变量所占用空间不是各个成员所需空间字节数的总和,而是联合成员中需要空间最大的成员的字节数。
定义联合类型的一般形式:
union 联合名
{
类型 变量名;
类型 变量名;
.............
}联合变量;
例如,定义一个名为data的联合,并说明value为联合变量,这个变量在不同时刻,可以是一个字符(1byte),一个短整型(2byte),一个长整型(4byte)。定义如下
union data
{
char ch;
short num;
long lnum;
}value;
拆胚贪蚌膨公于纫享电琐唾沙候英蛤毋旬魁见壕衔京赔次民要卯殆币盈把C语言 第八章 位域课件C语言 第八章 位域课件
2.1联合
value
ch
num
lnum
内存区域
共享起始位置
共享存储空间
对于上述定义,当编译程序编译时看到关键字union,它扫视联合定义中的成员类型表,找出要求占用的最大存储空间的一个成员,并以这个成员所需的存储空间作为分配给联合变量的存储空间,以保证能存放任何一
您可能关注的文档
- 1第一章 发展经济学(郭熙保)课件.ppt
- 1第一章 社会调查概述课件.ppt
- 1第一章心理学概论课件.ppt
- 1绪论什么是社会心理学课件.ppt
- 1诗歌鉴赏之诗歌题材分类课件.ppt
- 2-1 创造性思维课件.ppt
- 2007年固定资产投资统计年报培训课件.ppt
- 2008中财-自我认知2-性格价值观能力课件.ppt
- 20091021094017rr课件.ppt
- 2009年报关员资格考试模拟试题课件.ppt
- 陕西省雁塔区2024年《证券分析师之发布证券研究报告业务》资格考试必背100题题库附答案(A卷).docx
- 陕西省雁塔区《一级注册建筑师之建筑材料与构造》考试标准卷.docx
- 陕西省雁塔区2024财政所事业单位招考高频难、易错点200题模拟试题题库【含答案】.docx
- 陕西省雁塔区2024年《证券分析师之发布证券研究报告业务》资格考试必背100题题库附答案【突破训练】.docx
- 2025年班车影视合作协定.docx
- 应急值班安全培训.pptx
- 陕西省雁塔区2024《证券分析师之发布证券研究报告业务》考试必背100题题库a4版打印.docx
- 2025年读书比赛活动方案 .pdf
- 陕西省雁塔区整理《证券投资顾问之证券投资顾问业务》资格考试必刷100题大全【突破训练】.docx
- 应付款管理系统初始化设置.pptx
文档评论(0)