读书人

关于数据结构大小的有关问题

发布时间: 2012-02-28 13:06:36 作者: rapoo

关于数据结构大小的问题?
static
{
char a;
int b;
} flags;

int c=sizeof(flags);


c的值是多少?

[解决办法]
static
{
char a;
int b;
} flags;
是不是写错了
struct{
char a;
int b;
}flags;
[解决办法]
static
{
char a; //1
int b; //对齐到4,填充3,然后才是 b 的4字节
} flags;

一共就是 1+3+4 = 8
8 对齐到4, 结果为 8
[解决办法]
字节对齐
http://blog.csdn.net/believefym/archive/2007/08/23/1755425.aspx
[解决办法]
static struct
{
char a;
float b;
} flags;

这个结构里最大的成员 为 float 大小 4 所以这个结构的自身对齐长度为4

char 大小 1


所以

要在最后补充 3

一共是

1 + 4 + 3

读书人网 >C++

热点推荐