笔记本电脑
运行系统windows10
编程软件哈啊c
printf('char:%d\n',sizeof(char)); printf('float:%d\n',sizeof(float)); printf('int:%d\n',sizeof(int)); printf('double:%d\n',sizeof(double));//打印出各类型变量的大小
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));//打印出各个结构体的大小
struct s1{ char ch1;//1 char ch2;//1 int i;//4};//结构体花括号后面要记得加;
struct s2{ char ch1;//1 int i;//4 char ch2;//1};
struct s3{ char ch;//1 int i;//4 char str[10];//10};
struct s4{ char ch;//1 int i;//4 struct s{//8 char ch1;//1 int j;//4 }stmp;//结构体只是一个声明,不占空间 float f;//4};
struct s5{ char ch; int i; union{ //联合结构体,只按照里面最大的来算 char ch1; int j; };};
//#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; };
运行程序,结构体的对齐方式很浪费空间,可是按照计算机的访问规则,效率提高了。
1.结构体成员的偏移必须是成员大小的整数倍(0被认为是任何数的整数倍)
2.结构体大小必须是成员(数组,结构体除外)大小的整数倍
3.本程序采用哈啊c编写,由于软件本身有bug,在重新编译运行时,要先把之前的运行窗口先关掉,不然会报错。