gpt4 book ai didi

delphi - 我应该使用哪一个来为 Delphi、NativeUInt 或 NativeInt 进行 64 位指针数学运算

转载 作者:行者123 更新时间:2023-12-03 15:23:24 27 4
gpt4 key购买 nike

由于delphi有64位编译器,所以我们应该使用64位指针。

所以想知道如果我们使用nativeint 或nativeuint 有什么区别。例如,

我应该使用

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

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

这有关系吗?哪种风格更好?

最佳答案

最简单的方法是将指针转换为PByte。然后你可以对其进行算术:

PByte(Buffer) + offset

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

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

关于delphi - 我应该使用哪一个来为 Delphi、NativeUInt 或 NativeInt 进行 64 位指针数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24453644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com