zoukankan      html  css  js  c++  java
  • delphi 类型转化

    1.typecasting类型强制转化

    var

    B : Boolean;

    Begin

    B := Boolean(1);

    End;

    对于对象和接口,采用as操作符进行转化,但要先进行兼容性判断。

    2.Pointer指针

    Var

            A : Integer;

            P : PBoolean;

            B : Boolean;

           Begin

            A := 1;

            P := @A;//或者函数Addr;

            B := P^;

           End;

    3.Variants可变类型

    Variants变量可以存储任何类型,因此可以作为中转站。

           Var

            V : Variants;

            B : Boolean;

           Begin

            V := 1;

            B := V;

           End;

    4.Variant parts of records变体记录

    所有的变体字段共用一段内存

    type

    TDataConv = record

    case T: Boolean of

    True: (I: Byte);

    False: (B: Boolean;);

    end;

    var

    D: TDataConv;

    begin

    D.I := 1;

    end;

    使用变体记录时要注意:

    (1)变体字段不能是long strings、dynamic arrays、variants、interfaces 等由编译器自动管理内存的类型,也不能是含有上述类型的构造类型,但可以是这些类型和构造类型的指针。

    (2)所有变体字段共享一段内存。而共享内存的大小则由最大变体字段决定。

    (3)当tag 存在时,它也是记录的一个字段。也可以没有tag。

    5.absolute addressing绝对地址

    声明共享一段内存的多个变量,实现类型转化

    var

    I: Integer;

    B: Boolean absolute I;//B和I共享一段内存

    begin

    I := 1;

    end;

    以上方法都是通过数据内存地址操作达到转化。

  • 相关阅读:
    Build 2019 彩蛋
    崂山
    Win10 iot 修改日期时间
    《 结网:改变世界的互联网产品经理 》
    <[你在荒废时间的时候别人都在拼命!]>
    《时间的玫瑰》阅读笔记
    翻石头价值投资手册-科技行业
    No module named flask.ext.sqlalchemy.SQLALchemy
    《寻找伟大的企业》
    <《基金经理投资笔记丛书4-1:投资是一种生活方式》>
  • 原文地址:https://www.cnblogs.com/Blogs-young-chan/p/4680110.html
Copyright © 2011-2022 走看看