关于struct它所占的字节,大家都知道是它里面所有的变量所占字节的和,看看下面,大家是不是有点诧异啊,反正我是挺诧异的
#include<stdio.h>
int main(void)
{
struct Test
{
char *pcName;
short sDate;
};
struct Test_1
{
char *pcName;
char sDate;
};
struct Test_2
{
char *pcName;
double sDate;
};
struct Test_3
{
char *pcName;
short sDate;
char a;
};
printf("char *和short = %d\n",sizeof(Test));
printf("char *和char = %d\n",sizeof(Test_1));
printf("char *和double = %d\n",sizeof(Test_2));
printf("char,char *和short = %d\n",sizeof(Test_3));
return 0;
}

后来发现,它有个对齐的法则,就是说它以占用最大的那个变量对齐,如果有两个变量,它的内存是以占用最多字节的变量的成倍来算的。