天天看點

《C語言》結構體大小的計算(記憶體詳解)@Hansunbake

《C語言》結構體大小的計算(記憶體詳解)

CPU的資料傳輸方式是一次傳輸4個(32位)或者8個(64位)位元組的方式進行傳輸(根據總線條數來确定)。

一、對于64系統來說。

有結構體A如下:

struct A
{
 char   x;
 int    y;
 double z;	
};
           

那麼結構體A的儲存方式為:

x y y y y
z z z z z z z z

有結構體B如下:

struct B
{
 char   x;
 double y;
 int    z;	
};
           

那麼結構體B的儲存方式為:

x
y y y y y y y y
z z z z

有結構體C如下:

struct C
{
 int    x;
 char   y;
 double z;	
};
           

那麼結構體C的儲存方式為:

x x x x y
z z z z z z z z

有結構體D如下:

struct D
{
 int    x;
 char   Y;
 double Z;	
};
           

那麼結構體D的儲存方式為:

x x x x y
z z z z z z z z

有結構體E如下:

struct E
{
 double x;
 char   y;	
 int    z;
};
           

那麼結構體E的儲存方式為:

x x x x x x x x
y z z z z

有結構體F如下:

struct F
{
 double x;
 int    y;
 char   z;	
};
           

那麼結構體F的儲存方式為:

x x x x x x x x
y y y y z

繼續閱讀