struct struct_x {
char xa;
int xb;
};
struct struct_y
{
char ya;
struct_x yb;
int yc;
double yd;
char ye;
} ;
谁解释一下sizeof(struct_y ) =32 在内存中怎么对齐。谢谢
struct struct_x {
char xa;
int xb;
};
struct struct_y
{
char ya;
struct_x yb;
int yc;
double yd;
char ye;
} ;
谁解释一下sizeof(struct_y ) =32 在内存中怎么对齐。谢谢
基本的结构是下面这样的,最后那个char类型的编程了8个字节,因为若是4的话,当此类型的数组中的第二个元素中的double类型就起始于非8字节整数的地址了
|- 4byet -|- 4byte -|- 4byte -|- 4byte -|-- 8byte --|-- 8byte --|
ya xa xb yc yd ye
如何指定4字节对齐的话
struct struct_x { 4---char xa; 4---int xb; };
struct struct_y { 4---char ya; 8---struct_x yb; 4---int yc; 8---double yd; 4---char ye; } ;
sizeof(struct_y)应该是28吧?