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
)。
我有一个场景,我试图通过重用变量来节省 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
)。