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

萧山品牌网站建设三门峡网站优化

萧山品牌网站建设,三门峡网站优化,怎么修改自己网站内容,html5 wap网站模板动画1. 什么是 this 指针 C 中的 this指针是一个由系统维护的指针#xff0c;其指针本身的地址存储在某个内存位置#xff0c;对程序员不可见(程序员不能取得其地址)#xff0c;其仅在当前定义的实体的函数体内可见。 当任何外部函数调用实体的函数时#xff0c;系统会将该实…1.   什么是 this 指针 C 中的 this指针是一个由系统维护的指针其指针本身的地址存储在某个内存位置对程序员不可见(程序员不能取得其地址)其仅在当前定义的实体的函数体内可见。 当任何外部函数调用实体的函数时系统会将该实体的地址存入this指针进入函数后就可以通过该this指针访问实体的成员(数据和函数)。 2.   例释 this 指针(以windows 64位平台为例) 为了简单起见我们定义一个结构体并定义一个函数,使用默认构造函数 struct DataEntity { __int64 m 10; __int64 n 20; __int64 Add() { return m n; } }; 调用代码 DataEntity data; __int64 total data.Add(); 实现分析(汇编代码)下面通过其生成的汇编代码来分析其实现过程。 (1) 调用构造函数 DataEntity data; 00007FF689FF5073  lea   rcx,[data]  将实体的地址存入寄存器 rcx (调用构造函数传参用) 00007FF689FF5078  call  DataEntity::DataEntity (07FF689E76F55h)  ;调用构造函数 下面进入构造函数 DataEntity::DataEntity(void): 00007FF7946A13F0  mov         qword ptr [this],rcx  ;将实体地址存入this指针 ;在每一个生成函数中都会在进行正式操作前插入这样一段代码先将实体地址存入this指针 ;以便程序员后续利用 this指针操作该对象的成员。 00007FF7946A13F5  mov     rax,qword ptr [this]  ;取得this存储的对象地址 00007FF7946A13FA  mov     qword ptr [rax],0Ah  ; 将 10 送入 m 因为此时寄存器 rax 存放的是实体的首地址其首地址就是 m 的地址。 00007FF7946A1401  mov     rax,qword ptr [this]  ;再取this存储的对象地址存入寄存器 rax 00007FF7946A1406  mov     qword ptr [rax8],14h  ;地址8正好是n的内存位置将20送入 n 的地址指向的内存 00007FF7946A140E  mov     rax,qword ptr [this]  ; 将 this 指针送入寄存器 rax 以备使用 00007FF7946A1413  ret  ; 操作完成函数返回 注意该 this 指针在函数调用期间保持不变。 (2) 调用自定义函数 __int64 total data.Add(); 00007FF79481507D  lea     rcx,[data]  将实体的地址存入寄存器 rcx (调用构造函数传参用) 00007FF794815082  call    DataEntity::Add (07FF794696F64h)  调用函数 00007FF794815087  mov     qword ptr [total],rax ;从rax取出计算结果送入total 内存。 进行被调函数内部流程 __int64 Add() { 00007FF7946A12F0  mov         qword ptr [this],rcx  ; 取出实体地址存入 this return m n; 00007FF7946A12F5  mov         rax,qword ptr [this]  ;得取this 00007FF7946A12FA  mov         rax,qword ptr [rax]  ; m 值送入寄存器 rax 00007FF7946A12FD  mov         rcx,qword ptr [this] 得取this 00007FF7946A1302  add         rax,qword ptr [rcx8]  rcx8n的地址将n加到rax(m) } 00007FF7946A1306  ret  函数返回寄存器rax的值即为计算结果上述标红的部分即从rax取 出结果在 Windows X64 加构下约定使用 rax 传递返回值。
http://www.hkea.cn/news/14308762/

相关文章:

  • pc端网站开发总结招聘网站开发策划方案
  • 扬州做网站的网络公司免费自助建站哪个平台好
  • 资源采集网站如何做注册公司怎么注册啊
  • 有什么做设计接任务的网站网页设计推荐使用路径
  • 安能建设总公司网站打不开游戏网页制作
  • 网站建设的书籍知乎广州知名网站建设后台管理便捷
  • 网站编程设计如何写备注学做网站能找到工作么
  • 永康市建设银行网站查询异地网站建设公司
  • 网站建设微信商城运营手机网站下拉菜单代码
  • 网站建设实训总结范文phpnow 搭建网站
  • 手机网站开发 html5网站备案在线注销
  • 怎么做网站的百度排名wordpress网站打开慢
  • 阿里云网站建设服务费会计科目网站制作案例哪家强
  • 网站模板 哪家好北京网站建设好不好天
  • 做仿牌网站被封临沂市网站建设公司
  • 济南好的网站建设公司排名江苏省建筑培训网
  • 新河镇网站制作电影vip免费网站怎么做的
  • pythom 网站开发规范为离职员工做的网站
  • 网站改名工信部需要怎么做网站金融模版
  • 做购物网站婚庆网站论文
  • 黑网站代码制作百度推广助手app下载
  • 淄博网站制作服务推广网站建设sz886
  • 什么网站专门做境外当地游小广告多的网站
  • dw中旅游网站怎么做wordpress 底部备案号
  • 纯静态网站制作建设银行春招报名网站
  • 能打开所有网站的浏览器wordpress启动命令
  • 教育咨询网站模板公司网站制作多少钱
  • 网站域名续费后SEO查询未更换网站目录做外链
  • 网站如何做数据分析html用什么软件编写
  • 网站建设业务培训泰安做网站的公司