在编程中往往会对一个数据类型中的某几位进行定义,如一个字节的前6位是一个含义,后2位是一个含义。我们可以使用如下的方法很方便的对这样的结构进行定义:
例如,我们要对一个WORD型的数据进行内部定义,就可以按以下方法定义数据。然后就可以很方便的使用了
typedef union _UNIOBJ
{
struct // 位域结构
{
WORD uid : 12; // 低12位:唯一标识某类对象的序列号
WORD type : 4; // 高4位:对象的类型
}tag;
WORD value;
}_UNIOBJ;
// 定义对象
_UNIOBJ uobj;
uobj.value = 0; // 初始化为0
uobj.tag.type = 2;
uobj.tag.uid = 0xff;
这样uobj实际等于0x20ff