位域 内存对齐。。请教大侠
typedef struct _nfruit
{
double x;
unsigned int plum:5;
unsigned int peach:27;
} nf;
此结构体大小怎么会是16呢?我分析应该是12啊?
求救
[解决办法]
http://topic.csdn.net/u/20120326/18/356acf52-3fa8-4d68-8dff-b72c0da035c6.html
[解决办法]
double x; 占8个字节
后面两个占4个字节,对齐x后,共16个字节
[解决办法]
typedef struct _nfruit
{
unsigned int plum:5;
double x;
unsigned int peach:27;
} nf;
这个呢?????
多少????
[解决办法]
楼主,再试试这个
typedef struct _nfruit
{
unsigned int plum:5;
int x;
char b;
unsigned int peach:27;
} nf;
[解决办法]
如果是32位机器的就会对齐成4个字节的
[解决办法]
double x;
unsigned int plum:5;
unsigned int peach:27;
8+4+4=16,而且你的编译器可能是1/2/4字节对齐的。