共用体
#include "stdio.h"
#include "string.h"
union T
{
char x;
int y;
char z[11];
};
union T2
{
int x;
double y;
char str[8];
}t2;
void main()
{
union T data;
printf(" union T sizeof: %lu \n", sizeof(data) );
printf(" union t2 sizeof: %lu \n", sizeof(t2) );
}
编译输出:
union T sizeof: 16
union t2 sizeof: 8
T , char类型的x占用1字节, int类型的y占用4字节, char数组类型的z占用13字节, 所以共用体T占用使用最多的z, 13字节, 因为要字节对齐, 共用体中占字节最大的元素是y , 所以就对齐y的整数倍, 最少的是16字节了.