易語言資料型別記憶體分佈格式

q349980363發表於2012-09-24

易語言資料型別記憶體分佈格式

資料型別

大小(位元組)

結構說明

位元組型

1

這個沒必要說明…

短整數型

2

這個沒必要說明…

整數型

4

這個沒必要說明…

長整數型

8

這個沒必要說明…

小數形

4

這個沒必要說明…

雙精度小數型

8

這個沒必要說明…

文字型

4

易語言文字型變數其實並未直接儲存文字資料,而是儲存了一個指標(這就是說它的大小是4位元組的原因),這個指標指向的記憶體儲存了文字資料.

位元組集

4

位元組集型變數其實並未直接儲存位元組集資料,而是儲存了一個指標(這就是說它的大小是4位元組的原因),這個指標指向的記憶體儲存了位元組集資料.

位元組集資料的結構:

1、  一個恆定為數值1的整數;(4位元組)

2、  一個整數記錄資料的長度;(4位元組)

3、  位元組資料;

也就是說,要獲得真正的位元組集資料地址,要這樣寫:

讀數值 (取地址 (位元組集變數)) + 8   ’加8是偏移8位元組

陣列

4

陣列型變數其實並未直接儲存陣列資料,而是儲存了一個指標(這就是說它的大小是4位元組的原因) ,這個指標指向的記憶體儲存了陣列資料.

陣列資料的結構:

1、  一個整數記錄該陣列的維數;(4位元組)

2、  對應數目的整數值順序記錄對應維的成員數目;

3、  陣列資料;

也就是說,要獲得真正的陣列資料地址,要這樣寫:

讀數值 (取地址 (陣列變數)) + 讀數值(讀數值 (取地址(陣列變數))) × 4 + 4

複合資料型別

(包括自定義資料型別和類)

4

也是儲存了指標,這個指標指向的記憶體儲存了資料。

資料的結構:

按順序排列所有成員,注意任何成員如果資料尺寸小於4個位元組,都會被自動對齊到4個位元組。

如以下複合型別:

成員1:位元組型

成員2:短整數型

成員3:整數型

則整個複合型別所佔用的空間為 12 個位元組,

成員1地址:讀數值(取地址 (複合變數))

成員2地址:讀數值(取地址 (複合變數))+4

成員3地址:讀數值(取地址 (複合變數))+8

 

相關文章