当前位置: 首页 > wzjs >正文

小企业网站建设和管理百度关键词指数查询

小企业网站建设和管理,百度关键词指数查询,域名备案注销,上海网站搜索排名优化哪家好文章目录 内联汇编示例访问外部变量、函数和库需要避免的事项Solidity 中的约定类型变量的值内存管理内存安全高级内存安全使用内联汇编 我们可以在 Solidity 语句中交错使用内联汇编,这种汇编语言接近以太坊虚拟机(EVM)的语言。这让我们能够更加精细地控制,尤其是在编写库…

文章目录

  • 内联汇编
    • 示例
    • 访问外部变量、函数和库
    • 需要避免的事项
    • Solidity 中的约定
      • 类型变量的值
      • 内存管理
      • 内存安全
    • 高级内存安全使用

在这里插入图片描述

内联汇编

我们可以在 Solidity 语句中交错使用内联汇编,这种汇编语言接近以太坊虚拟机(EVM)的语言。这让我们能够更加精细地控制,尤其是在编写库或优化 gas 使用时非常有用。

在 Solidity 中使用的内联汇编语言叫做 Yul,它有独立的文档。在这一部分,我们仅讨论内联汇编代码如何与周围的 Solidity 代码交互。

内联汇编是一种低级访问以太坊虚拟机的方式。这会绕过 Solidity 的一些重要安全特性和检查。我们应该仅在需要时使用内联汇编,并且只有在我们对其使用充满信心时才使用。

内联汇编代码块用 assembly { … } 标记,花括号中的代码是 Yul 语言的代码。

内联汇编代码可以访问局部的 Solidity 变量,如下所述。

不同的内联汇编块没有共享命名空间,也就是说,无法在不同的内联汇编块中调用 Yul 函数或访问 Yul 变量。

示例

以下示例提供了一个库代码,用于访问另一个合约的代码并将其加载到一个 bytes 变量中。这在“纯 Solidity”中也可以通过使用 <address>.code 来实现。但重点在于,可重用的汇编库可以在不需要编译器更改的情况下增强 Solidity 语言。

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;library GetCode {function at(address addr) public view returns (bytes memory code) {assembly {// retrieve the size of the code, this needs assemblylet size := extcodesize(addr)// allocate output byte array - this could also be done without assembly// by using code = new bytes(size)code := mload(0x40)// new "memory end" including paddingmstore(0x40, add(code, and(add(add(size, 0x20), 0x1f), not(0x1f))))// store length in memorymstore(code, size)// actually retrieve the code, this needs assemblyextcodecopy(addr, add(code, 0x20), 0, size)}}
}

当优化器无法生成高效代码时,内联汇编也很有用,例如:

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;library VectorSum {// This function is less efficient because the optimizer currently fails to// remove the bounds checks in array access.function sumSolidity(uint[] memory data) public pure returns (uint sum) {for (uint i = 0; i < data.length; ++i)sum += data[i];}// We know that we only access the array in bounds, so we can avoid the check.// 0x20 needs to be added to an array because the first 
http://www.dtcms.com/wzjs/445986.html

相关文章:

  • 信息门户网站制作费用网站访问量查询工具
  • 网站添加锚点青岛seo公司
  • 免费软件大全app下载seo怎么发文章 seo发布工具
  • 合肥网站建设价格不受限制的万能浏览器
  • 企业门户网站建设市场公司网站搭建流程
  • 大型b2b外贸网站开发微信软文范例大全100
  • 公司做网站 微信平台网络营销优秀案例
  • wordpress 搬家 sae长沙网站seo推广公司
  • 洛阳网站的优化美发培训职业学校
  • wordpress+响应速度慢网站seo排名免费咨询
  • 能免费创建网站吗长沙网动网络科技有限公司
  • seodg官网杭州seo价格
  • 做建材上哪个网站比较好国家职业技能培训平台
  • 河南专业网站建设公司首选中国关键词官网
  • 网络公司发生网站建设费分录中国产品网
  • 网站建设使用的什么软件搜索引擎站长平台
  • 网站开发进度缓慢营销中存在的问题及对策
  • 营口网站制作公司产品网络推广
  • 日照网架公司sem优化服务公司
  • ecs做网站市场调研公司
  • 谷歌网页版网站优化北京seo
  • 东莞网站公司沈阳seo搜索引擎
  • 做loge的网站软件培训机构哪家好
  • 漂亮网站流量平台排名
  • 学网站论坛免费人脉推广
  • 专业网站建站公司域名权重查询工具
  • 58建筑人才招聘网seo百度关键词排名
  • 人和马做的视频网站手机百度推广怎么打广告
  • 手机建立网站app快速网站推广优化
  • 有经验的聊城网站建设中国互联网公司排名