读书人

进一步问位域的有关问题!

发布时间: 2012-03-06 20:47:55 作者: rapoo

进一步问位域的问题!!急急急!!!
struct data
{
unsigned char d1:4;
unsigned char d2:2;
unsigned char d3:2;
unsigned short d4;
unsigned char d5;

};
........
使用printf( "%d\n ",sizeof(data))时,显示的是6.


struct data
{
unsigned char d1:4;
unsigned char d2:2;
unsigned char d3:2;
unsigned char d5;
unsigned short d4;//
};

但是这里使用printf( "%d\n ",sizeof(data))时,显示的是4.

上面一个是按最大的内置类型对齐,即2*3=6
但是后面一个却又是4,不知道为什么这时候不按最大的内置类型对齐啊!

[解决办法]
还问呀。
不是给你说得很清楚了嘛

读书人网 >C语言

热点推荐