关于联合的问题
我自己觉得本来对联合是清楚的,可是看了两本教程之后,不知道是不是教程讲得不好,觉得自己又胡涂了。
比如定义这样一个联合:
union utag
{
unsigned short int a;
unsigned char b[2];
}u;
那么我用u.b[0]和u.b[1]分别往里面存储数据,然后用u.a读取,这样就可以把两个unsigned char数据合并成一个unsiged short型数据了是吗?相当于u.a = u.b[0] + u.b[1] * 256,对吧?
[解决办法]
union中各成员的起始地址相同,
需要注意的就是大端和小端,
还有各成员的起始地址必须为sizeof(member)的整数倍