能不能这样定义位字段?
我想把位字段和普通字段一同定义在一个结构中,可以吗?
另外,位字段可不可以跨字节?
比如,我定义这样一个结构变量:
struct
{
unsigned int operate:6;//操作码,1为删除,2为恢复(或造词),3为屏蔽,4为解除屏蔽,5为移序
unsigned int xh:2;
unsigned int index:24;
USHORT from;
USHORT to;
};
这样定义,在VS2008中编译成功了,总共占用8个字节,也符合的预想,我的问题是:能不能这样做?
第二个问题是:我的index变量占用24位宽,是在跨字节的了,这样定义可不可以?
[解决办法]
可以的
[解决办法]
跨字节,是可以的,只要位段长度,不超过最大位段长度。
另外,如果想让位段不连续,添加一个无名的0 长度位段。