• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphi新老版本数据类型所占内存大小

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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..xxxx] of char, 分配内存空间大小size的时候要注意了。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Ubuntu14.04安装Matlab2014a发布时间:2022-07-18
下一篇:
Ubuntu 16.04LTS 安装 MATLAB 2014B发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap