含位域结构体的sizeof
来源:互联网 发布:江苏省高考报名端口 编辑:程序博客网 时间:2024/05/20 22:38
使用位域的主要目的是压缩存储,其大致规则为:
1) 如果相邻位域字段的类型相同,且其位宽之和小于类型的sizeof大小,则后面的字段将紧邻前一个字段存储,直到不能容纳为止;
2) 如果相邻位域字段的类型相同,但其位宽之和大于类型的sizeof大小,则后面的字段将从新的存储单元开始,其偏移量为其类型大小的整数倍;
3) 如果相邻的位域字段的类型不同,则各编译器的具体实现有差异,VC6采取不压缩方式,Dev-C++采取压缩方式;
4) 如果位域字段之间穿插着非位域字段,则不进行压缩;
5) 整个结构体的总大小为最宽基本类型成员大小的整数倍。
测试:
struct test
{
char a:1;
char :2;
long b:3;
char c:2;
};
test t1;
int len=sizeof(t1); //len=12
struct test
{
char a:1;
char :2;
char b:3;
long c:2;
};
test t1;
int len=sizeof(t1); //len=8
struct test
{
char a:1;
char :2;
char b:3;
char c:2;
};
test t1;
int len=sizeof(t1); //len=1
- 结构体(含位域)的sizeof
- 结构体(含位域)的sizeof
- 含位域结构体的sizeof
- 含位域结构体的sizeof
- 含位域结构体的sizeof
- 含位域结构体的sizeof
- 结构体(含位域)的sizeof
- 结构体(含位域)的sizeof
- 含位域结构体的sizeof
- 结构体的sizeof
- 结构体的sizeof
- 结构体的sizeof
- 结构体的sizeof
- 结构体的sizeof
- 结构体(含位域)的sizeof 对齐相关
- 结构体的sizeof问题
- 结构体的sizeof问题
- 结构体的sizeof详解
- Cute Editor提示"文本内容中发现无效字符"解决方案
- flex+php文件上传
- 用Linux下的LVS软件实现Linux集群
- ASP.NET动态加载CSS文件
- 简单的网络爬虫
- 含位域结构体的sizeof
- ATPCS【转自http://hi.baidu.com/cumtsun/blog/item/3307af1b909d361d8618bf82.html】
- 『管理调优』Oracle的event code说明
- 『管理调优』Oracle高级复制(eygle相关专题)
- 『Java』MyEclipse学习笔记
- .NET Compact Framework下的GPS NMEA data数据分析
- Cannot convert value of type [java.lang.String] to required type [javax.sql.DataSource] for property 'dataSource': no matching e
- [OpenGL]-----简介及快速起步(基于VisualC++)
- ASP.NET学习笔记