一直以来,我认为结构体的size 是它里面所有成员变量size之和,今天才知道
结构体的size >=成员变量的size之和.
typedef struct STUDENT {
char name[20];
char sex;
int class;
float score[3];
float total;
float average;
}STUS;
输出的sizeof(STUS) =48;也就是说结构体的大小为(所有成员变量之和+n)(是结构体里成员变量中基本类型的倍数)
64位系统下 下面结果是24 64 ;32为系统下是 20 52
typedef union Data{
long i;
int k[5];
char c;
} Data;
struct S{
int cat;
Data cow;
double dog;
};
Data max;
则语句 printf("%d",sizeof(max)); //24
printf("%d",sizeof(struct S)+sizeof(max));//64