c++ 结构体中有联合体 什么意思啊?
typedef struct tagWord16
{
union
{
__int16v16;
__int8v8[2];
};
} Word16;
请各位高手赐教
[解决办法]
typedef struct tagWord16
{
union
{
__int16 v16;
__int8 v8[2];
};
} Word16;
Word16是一个结构体,可以用于存储双字节数据或者变量,结构内部包含了
union
{
__int16 v16;
__int8 v8[2];
};
这个,使得这个结构功能变得更强大,可以很方便的处理双字节的单独低字节部分或者高字节部分或者整个双字节。
Word16 w;
w.v16=0x1122;
printf("%x\n",w.v16);
printf("%x\n",w.v8[0]);
printf("%x\n",w.v8[1]);
我的机器运行结果是
0x1122
0x22
0x11
从我的机器运行结构也可以看出,我的计算机的结构式little-end
[解决办法]
不过,对于不同的系统,有字节前后问题,也就是v8[0]可能是v16中的高字节,也可能是低字节。