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

delphi–LongInt和Integer,LongWord和Cardinal之间的区别

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
在Delphi中,LongInt和Integer,LongWord和Cardinal有什么区别?

 

有时候我发现DWORD的用法是什么呢?

它们在所有版本的Delphi中是否一致?我应该坚持哪一个?

 
简而言之:Longint和Longword是固定大小的整数,前者是有符号的,后者是无符号的,并且通常都是32位大小. XE8中为 Their size is platform-dependent,但XE7及更早版本中的固定大小(32位).

 

整数和红衣主教不是固定的大小.它们被称为“通用”整数(不要将它与仿制品混淆,仿制品是一双不同的鞋子),即当需要整体类型时,无论尺寸如何,它们都应该优先使用.根据版本和平台,Integer和Cardinal的大小可能不同.目前,它们与Longint和Longword的大小和类型相同.

固定大小类型的大小在版本或平台之间没有差异.您应该使用这些类型,您必须与自己的程序之外的其他来源的代码或数据进行交互,换句话说,确切的二进制兼容性很重要,例如,调用API函数时.因此使用像DWORD等类型.

请注意,当前版本具有Byte或Smallint等类型的别名.它们是Int8,UInt8,Int16,UInt16等……直到UInt64. ISTM这些名称比以下更容易记住“Smallint”(16位签名)或“Shortint”(8位签名).

因此,只要可能,就使用Integer和Cardinal,因为这些可能是平台和版本的理想类型.使用固定大小的类型,如Byte,Smallint,Longint或UInt64,仅举几例,当需要与其他数据完全二进制兼容时.

更新

由于存在一些混淆(见顶部附近的链接),并且因为现在不再将Longint和Longword视为固定大小的平 ** 立,但是,奇怪的是,Integer和Cardinal被认为是固定大小,我越来越倾向于使用(U)像UInt16或Int32这样的IntXX版本.一个例外是我使用Byte,我无法想象它会改变它的大小(1).

当然,我会使用整数和红衣主教来做任何需要整体类型的东西,其尺寸不是那么重要,例如:用于循环计数器等


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
DelphiLiveBinds组件发布时间:2022-07-18
下一篇:
delphixe6打开andoridGPS设置发布时间: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