zoukankan      html  css  js  c++  java
  • 一个关于 absolute 关键字的小练习


    //例子中的三个变量让 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

  • 相关阅读:
    webpack初体验
    Sql server 数据库 单用户切换为多用户
    JAVA加密
    TransactionScrope 2
    TransactionScrope
    ORA-14450
    C#.NET 各种连接字符串
    如何获取得到新浪的授权?
    加载JSON文件,Plist文件
    屏幕截图
  • 原文地址:https://www.cnblogs.com/del/p/1394037.html
Copyright © 2011-2022 走看看