1、printf("char:%d\n",sizeof(char)); printf("float:%d\n",sizeof(float)); printf("int:%d\n",sizeof(int)); printf("double:%d\n",sizeof(double));//打印出各类型变量的大小
2、printf("s1:%d\n",sizeof(struct s1)); printf("s2:%d\n",sizeof(struct s2)); printf("s3:%d\n",sizeof(struct s3)); printf("s4:%d\n",sizeof(struct s4)); printf("s5:%d\n",sizeof(struct s5)); printf("s6:%d\n",sizeof(struct s6)); printf("s7:%d\n",sizeof(struct s7));//打印出各个结构体的大小
3、struct s1{ char ch1;//1 char ch2;//1 int i;//4};//结构体花括号后面要记得加;
4、struct s2{ char ch1;//1 int i;//4 char ch2;//1};
5、struct s3{ char ch;//1 int i;//4 char str[10];//10};
6、struct s4{ char ch;//1 int i;//4 struct s{//8 char ch1;//1 int j;//4 }stmp;//结构体只是一个声明,不占空间 float f;//4};
7、struct s5{ char ch; int i; union{ //联合结构体,只按照里面最大的来算 char ch1; int j; };};
8、//#pragma pack(4)//指定向4,最大是8,如有超出指定范围,就按照指定范围的来计算struct s6{ char ch;//1 int i;//4 float f;//4 double d;//8 };#pragma pack(10)//如没有超出指定范围,就按照最大的来计算struct s7{ char ch; int i; float f; double d; };
9、运行程序,结构体的对齐方式很浪费空间,可是按照计算机的访问规则,效率提高了。