7.10面试葵花宝典之结构体大小的计算方式
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
struct s1{
char ch1;
char ch2;
int i;
};
struct s2{
char ch1;
int i;
char ch2;
};
struct s3{
char ch;
int i;
char str[12];
};
struct s4{
char ch;
int i;
struct s{
char ch1;
int j;
double d;
}stmp;
float f;
};
struct s5{
char ch;
int i;
union{
char ch1;
int j;
};
};
struct s6{
char ch;
int i;
float f;
double d;
};
#pragma pack(10)
struct s7{
char ch;
int i;
float f;
double d;
};
int main()
{
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));
return 0;
}