C语言位域操作
来源:互联网 发布:mac腾讯微云同步盘 编辑:程序博客网 时间:2024/06/05 02:50
1、为了节省空间,操作方便,C语言提供一种数据结构:位域。申明如下:
struct bitfield{ char a:2; #a占2位 char b:3; #b占3位 char c:2; #c占2位 }bf;
2、基本规则:
(1)如果相邻位域字段的类型相同,且其位宽之和小于类型的sizeof大小,则后面的字
段将紧邻前一个字段存储,直到不能容纳为止;
例子:
int main(){ struct bitfield{ char a:2; char b:3; char c:2; }bf; printf("%d\n",sizeof(bf)); # 1 return 0;}
2) 如果相邻位域字段的类型相同,但其位宽之和大于类型的sizeof大小,则后面的字
段将从新的存储单元开始,其偏移量为其类型大小的整数倍;
例子:
int main(){ struct bitfield{ char a:2; char b:3; char c:2; char d:2; }bf; printf("%d\n",sizeof(bf)); # 2 return 0;}
3) 整个结构体的总大小为最宽基本类型成员大小的整数倍
例程:
int main(){ struct bitfield{ char a:2; char b:3; char c:2; int d:4; }bf; printf("%d\n",sizeof(bf)); #8 return 0;}int main(){ struct bitfield{ char a:2; int d; char b:3; char c:2; }bf; printf("%d\n",sizeof(bf)); #12 return 0;}
0 0
- C语言位域操作
- C语言位域操作
- C语言 位操作
- C语言位操作
- C语言位操作
- C语言位操作
- C语言位操作
- C语言位操作
- c语言位操作
- C语言位操作
- c语言位操作
- C语言-位操作
- C语言位操作
- C语言位操作
- C语言位操作
- C语言位操作
- c语言位操作
- C语言 位操作
- android 4.2 系统增永不休眠同时隐藏休眠选项
- Java排序
- 关于机器学习、深度学习以及模式识别
- Mysql中的Btree与Hash索引比较
- python中find()的用法
- C语言位域操作
- jQuery笔记——动画设计——复杂动画
- 最近5年133个Java面试问题列表
- 推荐cpp的shared_ptr和auto_ptr的文章
- redis相关
- web前端学习路线以及 侧重点==拒绝浪费不需要的精力
- DD+、E-AC-3 、EC3三个说的是同一种格式
- 微信硬件蓝牙jsapi之getWXDeviceInfos接口获取设备deviceid(10)
- 在windows中运行和打开.jar文件