位段详解。
2016-01-26 09:43
225 查看
C语言想结构体中以位为单位来指定其成员所占内存的长度。
如:
struct data{
unsigned a:2;
unsigned b:4;
unsigned c:16;
int i;
};
如果各个位段之和没有沾满一个字节,则存储单元其余位置为空。
对位段数据的引用方法:
data.a=2;
如果data.a=4;则报错。
1.位段成员的类型必须为unsigned或者int。
2.若某一位段要从另一个字开始存放,可以如下定义:
unsigned a:1;
unsigned b:2;
unsigned :0;
unsigned c:3;///从另外一个存储单元开始存放。
3.一个位段必须同时存储在同一存储单元中,不能跨两个单元。
4.可以定义无名字段。如:
unsigned a:1;
unsigned b:2;
unsigned :6;
unsigned c:3;
5.位段可以使用%d,%u,%x,%o输出。
如:
struct data{
unsigned a:2;
unsigned b:4;
unsigned c:16;
int i;
};
如果各个位段之和没有沾满一个字节,则存储单元其余位置为空。
对位段数据的引用方法:
data.a=2;
如果data.a=4;则报错。
1.位段成员的类型必须为unsigned或者int。
2.若某一位段要从另一个字开始存放,可以如下定义:
unsigned a:1;
unsigned b:2;
unsigned :0;
unsigned c:3;///从另外一个存储单元开始存放。
3.一个位段必须同时存储在同一存储单元中,不能跨两个单元。
4.可以定义无名字段。如:
unsigned a:1;
unsigned b:2;
unsigned :6;
unsigned c:3;
5.位段可以使用%d,%u,%x,%o输出。
相关文章推荐
- CornerStone简单配置
- Java中的static关键字解析
- iOS开发笔记--使用blend改变图片颜色
- IOS中的多线程之GCD
- Win7_提高性能
- gridview下相应处理技巧
- CornerStone简单配置
- git-总结
- 12个JQuery小贴士
- 繁华与落寞不过是过眼烟云
- [Ajax-相濡以沫,不如相忘于江湖] Ajax初识
- Gradle 多环境配置
- iOS开发笔记--cell最右边显示箭头,字符,自定义分割线
- ireport输出
- 如何解决问题?
- Android中图片转化为bitmap
- 2016.01.25回顾
- ios 验证码倒计时
- 关于环信集成报错问题之一
- Java控制语句——if语句