进一步问位域的问题!!急急急!!!
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,不知道为什么这时候不按最大的内置类型对齐啊!
[解决办法]
还问呀。
不是给你说得很清楚了嘛