delphi 新老版本資料型別所佔記憶體大小

2021-09-07 22:32:28 字數 944 閱讀 5169

procedure tform1.button1click(sender: tobject);

begin

memo1.clear;

memo1.lines.add('char---' + inttostr(sizeof(char)));

memo1.lines.add('ansichar---' + inttostr(sizeof(ansichar)));

memo1.lines.add('byte---' + inttostr(sizeof(byte)));

memo1.lines.add('word---' + inttostr(sizeof(word)));

memo1.lines.add('dword---' + inttostr(sizeof(dword)));

memo1.lines.add('cardinal---' + inttostr(sizeof(cardinal)));

end;

結果如下:

char---2

ansichar---1

byte---1

word---2

dword---4

cardinal---4

老版本delphi char是指ansichar; string是指ansistring.

新版本delphi char是指widechar;string是指unicodestring.

老版本char,佔乙個位元組的記憶體。

新版本char,佔二個字的記憶體。

byte,word,dword,cardinal所佔記憶體空間大小新、老版本都一樣。

關鍵是char,這是造成許多原delphi7下執行正常的函式在delphi xe及以上版本上執行不正常甚至報錯的主要原因。究其原因就是

所佔記憶體大小不同,有些快取定義成array[0..***x] of char, 分配記憶體空間大小size的時候要注意了。

Delphi資料型別

資料型別 1 常用型別 shortint char byte byte,unsigned short smallint short word unsigned short real48 6位元組浮點數 integer,longint int,long cardinal,longword dword ...

基本資料型別 引用資料型別

一 基本資料型別 基本資料型別 number string boolean null undefined symbol es6 基本資料型別是指存放在棧中的簡單資料段,資料大小確定,記憶體空間大小可以分配,它們是直接按值存放的,所以可以直接按值訪問。二 引用資料型別 引用資料型別 object 在j...

Delphi 資料型別列表

delphi 資料型別列表 分類 範圍位元組 備註簡單型別 序數整數 integer 2147483648 2147483647 4有符號32位 cardinal 0 4294967295 4無符號32位 shortint 128 127 1有符號8位 allint 32768 32767 2有符號...