首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

位域 内存对齐。请问大侠

2012-06-19 
位域 内存对齐。。请教大侠typedef struct _nfruit{doublex unsigned intplum:5unsigned intpeach:27} nf

位域 内存对齐。。请教大侠
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字节对齐的。

热点排行