solidity数据类型
浏览 501 | 评论 0 | 字数 708
硝基苯
2023年06月02日
  • 变量类型

    Solidity中,变量类型有:

    • 值类型
    • 地址类型
    • 引用类型

    值类型

    47573-hsh9o0ug657.png

    地址类型

    58129-zi34m3bf47c.png

    引用类型

    84995-lddqbkz6ufn.png

    因为这些类型涉及到的数据量比较大,复制他们可能会消耗大量的Gas费,所以要考虑清楚他们的存储位置。

    数据位置

    在合约中声明和使用的变量都有一个数据位置,指明变量值应该存储在哪里。合约变量的数据位置将会影响Gas消耗量。

    storage

    存储区(storage)存储永久数据,可以被合约中的所有函数访问,以合约的状态存储,并在函数调用之间保持持久性。成本较高

    memory

    内存位置是临时数据,比storage便宜,只能再函数中访问

    calldata

    不可修改的非持久性数据位置,所有传递给函数的值,都存储在这里。此外,Calldata是外部函数的参数(而不是返回参数)的默认位置。

    stack

    堆栈是由EVM (Ethereum虚拟机)维护的非持久性数据。EVM使用堆栈数据位置在执行期间加载变量

    本文作者:硝基苯
    本文链接:https://www.c6sec.com/index.php/archives/838/
    最后修改时间:2023-06-02 17:09:59
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论已关闭
    评论列表
    暂无评论