C语言中利用共用体、结构体、位域实现位操作
更新时间:2024-03-21 22:36:01 阅读量: 综合文库 文档下载
编写过51(MCU)程序的同学都知道51架构的MCU支持位操作,这是一个很方便的特性,在读取/修改寄存器某位的值时非常方便快捷。但其他架构的MCU大多都不支持该特性,即不支持位操作,所在在对寄存器中某一位进行操作的时候都是and/or两个操作共同使用,在编写程序时非常麻烦。在查找了大量资料后,笔者得出了本文中提到的一种折中方法。 名词解释:
共用体(union)表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。 位域是指信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。
在程序中定义这样一个共用体(union):
[cpp]view plaincopy print?
1. typedef union 2. {
3. WORD flags; 4. struct 5. {
6. unsigned int flag_bit0:1; 7. unsigned int flag_bit1:1; 8. unsigned int flag_bit2:1; 9. unsigned int flag_bit3:1; 10. unsigned int flag_bit4:1; 11. unsigned int flag_bit5:1; 12. unsigned int flag_bit6:1; 13. unsigned int flag_bit7:1; 14. unsigned int flag_bit8:1; 15. unsigned int flag_bit9:1; 16. unsigned int flag_bit10:1; 17. unsigned int flag_bit11:1; 18. unsigned int flag_bit12:1; 19. unsigned int flag_bit13:1;
20. unsigned int flag_bit14:1; 21. unsigned int flag_bit15:1; 22. }bit; 23. }Flag;
上面的共用体给出了一个16位寄存器的定义,在操作中,既可以对整个寄存器一起操作,也可以针对某一位进行操作。
例如,在程序中定义一个共用体的对象: Flag stFlag; stFlag.flags = 0xa5;
int P0_0 = stFlag.bit.flag_bit0; int P0_1 = stFlag.bit.flag_bit1;
// 实际中位域的排序根据编译器以及具体系统的存储模式相关
正在阅读:
乱序的四级英语词汇06-16
五年级寒假检测卷05-24
个人交通安全承诺书2022年04-04
数学变式训练01-21
四年级少先队活动课教案《第四单元:争当美德好少年》讲诚信11-17
庆祝香港回归祖国25周年心得体会范文两篇03-27
小精灵作文500字06-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 言中
- 共用
- 利用
- 结构
- 操作
- 实现
- 《机械工程测试技术基础》试题复习题及答案
- 浅析技工院校电子商务专业教学中存在的问题及对策分析-2019年文
- 2019年整理--公安局党委年度思想政治工作总结
- 道路通行能力分析实践报告
- 个人征信查询中征信的基本原则包括哪些内容
- 高三毕业典礼学生代表演讲稿
- 中班故事表演游戏《拔萝卜》教案详案
- 湖南省衡阳八中2015 - 2016学年高一生物下学期期末试卷(含解析
- 附加15套中考模拟卷初中物理电功、电功率阶梯训练 doc
- 循环水水处理技术协议
- cad中创建下拉菜单和菜单项的VBA程序代码
- 肥西县上派镇丽景小学5.12方案
- 军事理论课后题答案
- 5S管理办法课件
- 二年级上册数学教学反思10篇
- 部编版一年级下册《第19课+棉花姑娘》2018年同步练习卷
- 积极借鉴美日德解决中小企业融资的经验
- 2014年甘肃公务员考试行测专项练习题101 - 甘肃中公教育
- 传播学教程名词解释(完整版)郭庆光
- 中建公司管理制度汇编 - secret - 图文