//例子中的三个变量让 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 语言的联合也都是这个原理, 不如看个表更直观:
Int64: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
TPoint: | X | Y | ||||||
本例数组: | arr[0] | arr[1] | ||||||
Integer: | 1 | 2 | 3 | 4 | ||||
Word: | 1 | 2 | ||||||
Byte: | 1 |
分类:
运算符相关
, Delphi 语言常识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2008-02-19 WinAPI: waveInClose - 关闭指定的波形输入设备
2008-02-19 WinAPI: waveInAddBuffer - 向波形输入设备发送一个输入缓冲区
2008-02-19 动画演示 Delphi 2007 IDE 功能[2] - 定义变量
2008-02-19 颜色转换函数: 从 Delphi 到 Html
2008-02-19 Delphi 中的颜色常量及效果图
2008-02-19 动画演示 Delphi 2007 IDE 功能[1] - 建立工程、添加控件