//例子中的三个变量让 absolute 都给弄到一块了, 这有时会很方便; 但我总也想不到用, 还是不熟. procedure TForm1.FormCreate(Sender: TObject); var num: Int64; pt: TPoint absolute num; arr: array[0..1] of Integer absolute pt; begin pt.X := 111; pt.Y := 222; ShowMessageFmt('%d, %d', [arr[0], arr[1]]); {111, 222} ShowMessageFmt('%d, %d', [num shl 32 shr 32, num shr 32]); {111, 222} end; 在这里补充回复 "followers" 在下面提出的问题: absolute 可让变量共享内存; 共享内存的其中一个变量赋值后, 其他变量会同时改变. 如果不用 absolute, 使用类型转换也可以, 不过这样更方便. 另外, Delphi 的可变记录、变体类型和 C 语言的联合也都是这个原理, 不如看个表更直观:
|
|