Delphi - 以 2 个不同的单位声明一个变量的实例

Delphi - declare an instance of a variable in 2 different units

我有一个场景,我试图通过重用变量来节省 RAM。

有 2 个单元都需要固定长度的字节数组,所以传统上是通过声明这样的来完成的:

Unit A

var MyData: array[0..9] of byte;

unit B

var Test: array[0..9] of byte;

不用担心数据重叠,因为每个单元中的方法彼此独立工作,但由于它们在每个单元中使用命名变量(即单元 A 中的 MyData , Test in unit B), 我想知道是否可以让变量“Test”引用“MyData " 不更改单位中的变量名称。

即,单元 A 中的所有方法都使用变量 MyData,而单元 B 中的所有方法继续使用变量 Test现在但是 Test 引用 MyData

所以实际上我只使用了 10 个字节而不是 20 个。

执行此操作的最佳方法是什么?

谢谢大家

是的,您可以使用 absolute 关键字。

单位A:

Unit A

interface

var MyData: array[0..9] of byte;

和单元 B:

unit B

interface

uses ..., A;

var Test: array[0..9] of byte absolute MyData;

在单元A中你可以使用MyData变量,在单元B中你可以使用Test变量来引用相同的内存区域。

另一方面,它没有太多意义,因为您也可以在单元 B 中参考 MyData(并完全跳过 Test)。