1. union的长度
union
{
int k;
int p[4];
double q;
}data;
sizeof(data)=20; //结构体中最大的数据长度
2.struct的长度
struct
{
int k;
double q;
}data;
sizeof(data)=16; //结构体中最大的数据长度的倍数(默认情况,如果设置了不同的内存对齐另当别论);
//如果以1字节、4字节对齐的话,sizeof(data)=12;
3.struct与union的联合使用
void struct_and_union_use()
{
union
{
unsigned short i;
struct
{
char first;
char second;
}half;
}data;
data.i=0x4241;
char tmp=data.half.first; // 65-‘A‘; 97-‘a‘; tmp=‘a‘或者tmp=‘b‘(视大小端决定);
}
时间: 2024-10-18 00:40:03