示例:
typedef struct _A
{
char a;
int b;
float c;
double d;
int *pa;
char *pc;
short e;
}A;
第一步,计算出结构体所有类型的所占大小。
typedef struct _A
{
char a;//1
int b;//4
float c;//4
double d;//8
int *pa;//4
char *pc;//4
short e;//2
}A;
第三步,按照顺序,依次模拟内存堆放
<pre code_snippet_id="630306" snippet_file_name="blog_20150328_2_3150315" name="code" class="cpp"> char a;//1
■□□□□□□□
<pre code_snippet_id="630306" snippet_file_name="blog_20150328_2_3150315" name="code" class="cpp"> char a;//1
int b;//4
■■■■■□□□
<pre code_snippet_id="630306" snippet_file_name="blog_20150328_2_3150315" name="code" class="cpp"> char a;//1
int b;//4
float c;//4
■■■■■□□□
■■■■□□□□
char a;//1
int b;//4
float c;//4
double d;//8
■■■■■□□□
■■■■□□□□
■■■■■■■■ char a;//1
int b;//4
float c;//4
double d;//8
int *pa;//4
■■■■■□□□
■■■■□□□□
■■■■■■■■■■■■□□□□
char a;//1
int b;//4
float c;//4
double d;//8
int *pa;//4
char *pc;//4
■■■■■□□□
■■■■□□□□
■■■■■■■■■■■■■■■■
char a;//1
int b;//4
float c;//4
double d;//8
int *pa;//4
char *pc;//4
short e;//2
■■■■■□□□
■■■■□□□□
■■■■■■■■■■■■■■■■
■■□□□□□□
综上,一共占用40字节。