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;

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

  • 相关阅读:
    过滤器判断请求参数中是否含有某一字段
    vscode开发vue项目实现pc端自适应_cssrem_rem_reset.scss,pc端媒体查询常用设置
    element_ui的datePicker修改样式
    TCP/IP 卷一 APR、RAPR、ICMP
    TCP/IP 卷一:协议(IP层)
    常见负载均衡策略
    TCP/IP 卷一:协议(链路层)
    TCP/IP 卷一:协议(概述)
    RokcetMQ
    Zookeeper集群
  • 原文地址:https://www.cnblogs.com/Blogs-young-chan/p/4680110.html
Copyright © 2011-2022 走看看