union(联合体)
在C语言中:
union在语法上与struct相似
union只分配最大成员的空间, 所有员共享这个空间
/*测试代码*/
#include <stdio.h>
struct A
{
int a;
int b;
int c;
};
union B
{
int a;
int b;
int c;
};
int main()
{
printf("%d\n", sizeof(struct A)); // 12
printf("%d\n", sizeof(union B)); // 4
return 0;
}
union使用的注意事项
· union的使用受系统大小端的影响
- 小端模式:低地址存储低位数据
- 大端模式:低地址存储高位数据
/*
测试代码
判断系统大小端
*/
#include <stdio.h>
union C
{
int i;
char c;
};
int main()
{
union C c;
c.i = 1;
// c.c = 1, 小端系统
// c.c = 0, 大端系统
printf("c.c = %d\n", c.c);
return 0;
}