1.联合体的成员数据类型一致时
2.联合体的成员数据类型不一致时
内存分布:
首地址是相同的,但大小不相同。
3.总结
对于联合体的成员来说,大小不一定相同,但首地址必定是相同的。
4.联合体的应用
利用联合体通过串口收发浮点数
代码如下:
#include "stdafx.h"
#define MAX_LENTH 8
union U1
{
char s[MAX_LENTH];
double d;
};
union U2
{
char s[MAX_LENTH];
double d;
};
int _tmain(int argc, _TCHAR* argv[])
{
U1 u1;
U2 u2;
int i=0;
u1.d = 2.111;
u2.d = 3.00;
printf("u1.d = %lf\n",u1.d);
printf("u2.d = %lf\n",u2.d);
printf("Send Data...");
for(i=0;i<MAX_LENTH;i++)
{
u2.s[i] = u1.s[i];
}
printf("u2.d = %lf\n",u2.d);
while(getchar()=='q');
return 0;
}