gpt4 book ai didi

delphi - TArray<字节> VS TBytes VS PByteArray

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

这 3 种类型非常相似...

TArray 是 TBytes 的通用版本。两者都可以转换为 PByteArray 并用作调用 Windows API 的缓冲区。 (与字符串到 Pchar 具有相同的限制)。

我想知道的是:这种行为是“设计使然”还是“实现使然”。或者更具体地说,它会在未来的版本中出现故障吗?

//编辑正如下面所说...我真正想知道的是:就前向兼容性而言,将 TBytes(或 TArray)类型转换为 PByteArray 与将 String 类型转换为 PChar 一样安全吗? (或者也许 AnsiString 到 PAnsiChar 是一个更好的例子 ^_^)

最佳答案

简单来说,字节数组就是字节数组,只要字节和数组的定义不改变,这个也不会改变。只要您确保遵守数组边界,您就可以安全地以这种方式使用它,因为将其从 Delphi 的数组类型中转换出来会使您的边界检查无效。

编辑:我想我现在更好地理解你的要求了。

不,您不应将动态数组引用强制转换为 C 样式数组指针。您可以使用字符串来摆脱它,因为编译器可以帮助您一些。

不过,您可以做的是将指向动态数组的元素 0 的指针转换为 C 样式数组指针。这起作用,并且不会改变。

关于delphi - TArray<字节> VS TBytes VS PByteArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2427506/

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