位域中成员的类型有意义嘛
本帖最后由 wangdahu888 于 2013-08-05 17:54:32 编辑 位域中的类型有意义嘛,既然都表示二进制位了,成员前面的类型,还有意义嘛
struct bs
{
int a:8; 这里的int换成char,是不是也无所谓呀,求大神明辨!!!
int b:2;
int c:6;
};
C c struct
[解决办法]
有意义,
1是长度,char最大8bit,int32bit
2是字节对齐
[解决办法]
更有意义的是unsigned
[解决办法]
结合1,2楼。
[解决办法]
意义不大,不过从严格的意义上来说,unsigned和类型可以限定符合和位数。
位域的应用并不广,还不如直接位运算来的方便和容易理解。
struct bs
{
int a:8; //这里标识int 4个字节,32位 只占8位而已
int b:2; // 这里 表示值占 2位,
int c:6; //6位
//只要后面没有用完 32位的话, 整个结构体大小就只是4个字节大小而已!
//全部换成char的话, char 8个字节, 结构体旧只占2个字节~
};
//结构体中有最大内部类型字节对齐的吧!
//这里有int 和int对齐
struct RR
{
int type : 2;
char data : 6;
};
struct RR
{
char type :8;
char type :2;
//这个结构体只占2个字节
}