#include
using namespace std;
class a
public:
int i;
class b
public:
char ch;
classc
public:
int i;
short j;
class d
public:
int i;
short j;
char ch;
class e
public:
int i;
int ii;
short j;
char ch;
char chr;
class f
public:
int i;
int ii;
int iii;
short j;
char ch;
char chr;
int main()
cout剛開始寫這個程式的時候很困惑,後來才知道由於平台的原因,不同資料型別的資料會分布在不同的記憶體上,所以實際上占用記憶體的大小不是所有資料的理論占用值相加,而是把某幾個資料補齊了以後相加。具體的字對齊演算法我還不是很懂,今後有機會慢慢研究,現在姑且先理解這個概念吧。
字對齊 半字對齊 位元組對齊的理解
一般情況下字為32位 4位元組 半字為16位 2位元組 位元組為8位 1位元組 大多數計算機使用 位元組 8位的資料塊 作為最小可定址的儲存器單位 而不是訪問儲存器中單獨的位。儲存器的每乙個位元組都由唯一的數字標識,稱為該位元組的位址,所有可能位址的集合稱為儲存器空間。舉例來說,arm處理器工作狀態...
字對齊 半字對齊 位元組對齊的理解
一般情況下字為32位 4位元組 半字為16位 2位元組 位元組為8位 1位元組 大多數計算機使用位元組 8位的資料塊 作為最小可定址的儲存器單位,而不是訪問儲存器中單獨的位。儲存器的每乙個位元組都由唯一的數字標識,稱為該位元組的位址,所有可能位址的集合稱為儲存器空間。舉例來說,arm處理器工作狀態有...
字對齊 半字對齊 位元組對齊的理解
一般情況下字為32位 4位元組 半字為16位 2位元組 位元組為8位 1位元組 大多數計算機使用位元組 8位的資料塊 作為最小可定址的儲存器單位,而不是訪問儲存器中單獨的位。儲存器的每乙個位元組都由唯一的數字標識,稱為該位元組的位址,所有可能位址的集合稱為儲存器空間。舉例來說,arm處理器工作狀態有...