union中隐藏的字节对齐
来源:互联网 发布:公司域名怎么申请 编辑:程序博客网 时间:2024/04/30 10:48
不要认为内存字节对齐是struct的专利,在union中也会出现内存对齐的情况。
#include <stdio.h>
#include <iostream.h>
union u{
int a[5]; //20个字节
char b;//1个字节
double c;//8个字节
};
按理说sizeof(u)等于20,但是这里最大的数据单元是double,内部数据将会按照8字节进行对齐,所以int a[5]按照8字节对齐后就为24个字节。
struct s{
u b;
int a;
};
按理说这里sizeof(s)应该是24,但是由于u是按8字节进行对齐的,所以这里的数据单位也将会以8字节进行对齐。24+8=32个字节
struct s1{
int n;
char a;
};
VC6中默认是按照4字节进行对齐,这里sizeof运算后结果应该是8字节。
void main(int argc, char *argv[])
{
cout<<"union u "<<sizeof(u)<<endl;
cout << sizeof(s) << endl;
cout<< sizeof(s1)<<endl;
}
0 0
- union中隐藏的字节对齐
- C语言的struct/union字节对齐详解
- C语言的struct/union字节对齐详解
- struct与union字节对齐问题
- 字节对齐(struct 和 union)
- VC++中关于字节对齐的问题
- DSP中字节/字对齐的问题
- g++中关于字节对齐的测试
- VC++中关于字节对齐的问题
- VC++中关于字节对齐的问题
- C++中struct的字节对齐
- 开发中遇到字节对齐的问题
- 细说C++中字节的对齐方式
- C++中对字节对齐的理解
- 结构体中字节对齐的问题
- 关于struct和union存储的内存字节对齐的问题
- 内存中字节对齐
- VS2008中字节对齐
- Android setHomeButtonEnabled和setDisplayHomeAsUpEnabled用法与区别
- 关于点击状态栏回到顶部的功能失效
- 域名被恶意解析如何处理?
- hdu4504威威猫系列故事——篮球梦
- oracle日期比较
- union中隐藏的字节对齐
- AspNetPager分页控件的使用
- Java关键字final、static使用总结
- 图像处理之——浮雕效果实现
- IOS NSNotificationCenter消息通信机制介绍
- Android中LayoutInflater的3种使用以及getSystemService的API
- java中equals的用法,与“==”的区别
- 关于正则表达式中的元字符的过滤
- BlockManager