当前位置: 技术问答>linux和unix
求解struct的大小
来源: 互联网 发布时间:2016-12-05
本文导语: 各位大侠,小弟写了一个程序,求解下面两个struct的大小:sizeof(s)是4,sizeof(g)是12; struct{ int a:3; int b:1; int c:4; }s; struct{ int a:3; int b:1; ...
各位大侠,小弟写了一个程序,求解下面两个struct的大小:sizeof(s)是4,sizeof(g)是12;
struct{
int a:3;
int b:1;
int c:4;
}s;
struct{
int a:3;
int b:1;
int c:4;
}g;
当初始化用到“:”时,大小就变了,各位大侠这是为什么啊????
struct{
int a:3;
int b:1;
int c:4;
}s;
struct{
int a:3;
int b:1;
int c:4;
}g;
当初始化用到“:”时,大小就变了,各位大侠这是为什么啊????
|
http://blog.21ic.com/user1/6199/archives/2009/65542.html
不同系统也不同
楼主先看看这个
就是个内存对齐问题
不同系统也不同
楼主先看看这个
就是个内存对齐问题
|
你写的s、g是一样的啊 ,
这个问题应该是对齐问题。
这个问题应该是对齐问题。
|
我试了一下,两个都是4
gcc默认按4字节对齐
8bit后补了3个字节,共4个字节
gcc默认按4字节对齐
8bit后补了3个字节,共4个字节
|
对其很麻烦,不同的系统不一样,所以只好强制对其方式!