delphi中“共享内存”都主板支持的内存类型哪些数据类型

当前位置:
DELPHI中记录的存储方式
来源: 联系QQ: 作者: 佚名 来源: 网络 发布时间: 12/10/12
在DELPHI中,我们用record关键字来表明一个记录,有时候,我们还会看到用packed record来声明的记录,这二者的区别就在于存储方式的不同;在windows中,内存的分配一次是4个字节的,而Packed按字节进行内存的申请和分配,这样速度要慢一些,因为需要额外的时间来进行指针的定位。因此如果不用Packed的话,Delphi将按一次4个字节的方式申请内存,因此如果一个变量没有4个字节宽的话也要占4个字节!这样浪费了一些空间,但提高了效率。例如一个记录,以,sizeof(okwary)应该得到8。而如果使用packed关键字,那么sizeof(okwary)则得到5。&& type okwary= record&&&& age :&&&& sex :&&& &&&&&&& 其中age是integer类型,正好4个字节,而sex是showint类型,占用一个字节,但基于4字节得内存分配方式,这里它也将占用4个字节。DELPHI中的变体记录在DELPHI中,观察Tmessage和TTypeData的定义,从关键字record,你一眼就可以看出,它是一个记录类型,但仔细观察,你又会发现在它的定义中出现了case关键字。它代表什么呢?它代表此记录是变体记录。让我们先去了解一下变体记录。一个典型的变体记录定义如下:type& recordTypeName& =& record& && fieldList1:& type1;& && & && fieldListn:&& case& tag:& ordinalType& of& && constantList1:& (variant1);& && & && constantListn:& (variantn);& &其中case到结尾部分定义了多个变体字段。所有变体字段共享一段内存大小又最大变体字段决定。使用变体记录时要注意:&(1)Long& String、WideString、Dynamic& Array、Interface的大小都是指针大小,& OleVariant其实就是COM& SDK中的VARIANT结构,大小是16字节。但在Object& Pascal中它们都需要自动终结化,如果它们出现在variant& part中,编译器就无法知道它们是否应该进行终结化DD因为不知道当前存储的是哪种类型。&&&(2)所有变体字段共享一段内存。而共享内存的大小则由最大变体字段决定。&(3)当tag存在时,它也是记录的一个字段。也可以没有tag。&(4)记录的变体部分的条件域必须是有序类型(5)记录类型中可以含有变体部分,有点象case语句,但没有最后的end,变体部分必需在记录中其他字段的声明之后&事实上Delphi中内存的几乎所有的变体记录都有一个特点(尽管这不是要求的),就是所有变体部份长度部和都是一样的,比如:&& TMessage = packed record&&&& Msg: C&&&& case Integer of&&&&&& 0: (&&&&&&&& WParam: L&&&&&&&& LParam: L&&&&&&&& Result: Longint);&&&&&& 1: (&&&&&&&& WParamLo: W&&&&&&&& WParamHi: W&&&&&&&& LParamLo: W&&&&&&&& LParamHi: W&&&&&&&& ResultLo: W&&&&&&&& Res
上一篇资讯:
下一篇资讯:
文章排行榜您的位置:
本文网址:
栏目分类??????????????????????????????????特别关注热门排行推荐信息没有资料相关信息
页面执行时间1.2188秒 查询数据库72次2012年10月 其他开发语言大版内专家分月排行榜第二2011年7月 其他开发语言大版内专家分月排行榜第二2010年3月 其他开发语言大版内专家分月排行榜第二2007年10月 其他开发语言大版内专家分月排行榜第二2007年9月 其他开发语言大版内专家分月排行榜第二2005年3月 Windows专区大版内专家分月排行榜第二2005年2月 Windows专区大版内专家分月排行榜第二2005年6月 扩充话题大版内专家分月排行榜第二2006年9月 其他开发语言大版内专家分月排行榜第二2006年5月 其他开发语言大版内专家分月排行榜第二2006年3月 其他开发语言大版内专家分月排行榜第二2006年2月 其他开发语言大版内专家分月排行榜第二2005年12月 其他开发语言大版内专家分月排行榜第二2005年4月 其他开发语言大版内专家分月排行榜第二2004年11月 其他开发语言大版内专家分月排行榜第二2005年3月 硬件使用大版内专家分月排行榜第二
2011年11月 其他开发语言大版内专家分月排行榜第三2011年8月 其他开发语言大版内专家分月排行榜第三2008年10月 其他开发语言大版内专家分月排行榜第三2004年9月 硬件/嵌入开发大版内专家分月排行榜第三
2004年8月 C++ Builder大版内专家分月排行榜第二
2003年3月 C++ Builder大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 delphi 共享内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信