位字段结构.pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
位字段结构.ppt

结构的定义 结构变量的说明 定义结构时说明变量 结构变量成员项的访问 结构指针 结构指针变量 访问结构指针的目标结构变量 位字段举例 位字段结构数据类型的定义 位字段结构变量的说明 例1 8254初始化 强制类型转换的说明 PC机的扬声器驱动系统 例2 喇叭发声程序 位字段结构与联合的嵌套 联合数据类型的定义 联合变量的说明 联合变量的使用 结构与联合嵌套的应用 例3 8254初始化 12位A/D数据的输入与合成 例4 12位A/D数据合成 思考题 * 位字段结构的概念 结构是一种复合数据类型,它可以由不同数据类型的数据组成。组成结构的每个数据项称为结构的成员。 可编程接口器件有一个命令字寄存器或控制字寄存器,通过编程,确定芯片的工作方式。命令字中的一位或几位组合起来,成为一个位字段,决定一项功能。 位字段结构是一种特殊形式的结构,它的成员项是二进制位字段。位字段结构中每个成员项的一般形式为: 数据类型 成员名:位数; 其中数据类型一般采用 unsigned 型或 int 型 结构用关键字struct定义, 结构定义的一般形式如下: struct 结构名 { 数据类型 成员名1; 数据类型 成员名2; ….. 数据类型 成员名n; }; 例如定义一个有关学生的学号、姓名、地址,年龄、性别、成绩的结构类型。 struct student { int num; char name[8] char addr[20] char sex; int age; float score; }; 如果结构已经定义,则说明结构变量的一般形式为: struct 结构名 结构变量名表; 例如结构struct student已经定义,使用这个结构数据类型的结构变量zhang3,li4,wang5 可以这样说明: struct student zhang3, li4, wang5; 结构变量说明的另一种形式是定义结构数据类型的同时说明结构变量, 这时可以省略结构名。例如: struct { char x; int y; float z; }m,n,k; m,n,k是使用该结构数据类型的结构变量 C语言用句点操作符“.”访问结构变量成员项,一般形式如下: 结构变量名.成员名; 例如 m.x=‘A’; m.y=1999; m.z=3.14; 指向结构变量的指针称为结构指针。结构指针是一个指针变量,它存放着结构变量的存储首地址。结构指针指向的结构变量称为它的目标结构量。 结构指针在程序中说明的一般形式为 struct 结构名 *结构指针名; 其中,结构名必须是已经定义过的结构 。 结构指针的说明规定了它的数据特性,但指针的内容还没有确定,即它的目标指向是不定的。因此指针在使用之前要通过初始化或赋值运算把实际存在的某个结构变量的存储地址值赋给它。例如 struct dat { char c; int i; flont f; }; struct dat x,*p; p=x ; 以上程序定义了一个结构数据类型struct dat,说明了一个结构变量x和一个结构指针p,并把结构变量x的地址赋给结构指针p。 访问结构指针的目标结构变量中成员项的一般形式为 结构指针名—成员名; 或 (*结构指针名)成员名; 例如 P—i=148; P—c=‘A’; (*P)f=2.73; 以8254的命令字寄存器为例: BCD M0 M1 M2 RL0 RL1 SC0 SC1 D0 D1 D2 D3 D4 D5 D6 D7 通道选择 读写方式选择 工作方式选择 数制选择 有四个位字段,分别决定四项功能。若改变一项功能,只需对一个位字段进行操作。可采用位运算或位字段结构的方式进行。 8254的命令字可定义为一个位字段结构: struct bit { unsigned bcd :1; unsigned m :3; unsigned re :2; unsigned sc: 2; } 在Trubo C中,位字段结构中位字段的顺序是从低位到高位 。 位字段结构变量在存储时使用的内存空间大小是以int型数据长度为单位的,即使位字段结构变量中各成员项的位数总和小于int型的字长,它也占用一个int型位长的内存空间 。 位字段结构的数据类型定义之后,就可以对位字段结构变量进行说明,如 struct bit cmd; 即位字段结构变量cmd使用struit bit数据类型。位字段结构变量cmd的各成员项为: cmd.bcd cmd.m cmd.re cmd.se 也可以在

文档评论(0)

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

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

1亿VIP精品文档

相关文档