加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

我应该使用哪一个为Delphi,NativeUInt或NativeInt进行64位指针数

发布时间:2020-12-15 09:21:03 所属栏目:大数据 来源:网络整理
导读:由于有64位delphi编译器,我们应该使用64位指针. 如果我们使用nativeint或nativeuint,那么想知道有什么区别.例如, 我应该用吗? Pointer(NativeUInt(Pointer(Buffer)) + LongWord(datawrote))^, 要么 Pointer(NativeInt(Pointer(Buffer)) + LongWord(datawrot
由于有64位delphi编译器,我们应该使用64位指针.

如果我们使用nativeint或nativeuint,那么想知道有什么区别.例如,

我应该用吗?

Pointer(NativeUInt(Pointer(Buffer)) + LongWord(datawrote))^,

要么

Pointer(NativeInt(Pointer(Buffer)) + LongWord(datawrote))^,

有关系吗?哪个风格更好?

解决方法

最简单的方法是将指针强制转换为PByte.然后你可以对它进行算术运算:

PByte(Buffer) + offset

该表达式是PByte类型,因此您可能需要将其转换回其他指针类型.

作为一般规则,指针不是整数,你应该抵制将它们转换为整数的诱惑.让指针成为指针几乎总是最好的.您始终可以对PAnsiChar,PWideChar和PByte执行指针运算,对于其他指针类型,您可以使用{$POINTERMATH ON}来启用指针运算.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读