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

网站建设的标语国内可以做的国外兼职网站

网站建设的标语,国内可以做的国外兼职网站,公司变更注册地址的流程,望牛墩镇仿做网站在c中#xff0c;调用对象的非静态成员函数过程中#xff0c;编译器会自动添加this指针作为第一个参数。我们从汇编层面看看this指针是如何传进来的。 使用如下简单的程序来演示#xff1a; class A { private:int a[100];int b; public:void SetB(int b){ this-b b;…在c中调用对象的非静态成员函数过程中编译器会自动添加this指针作为第一个参数。我们从汇编层面看看this指针是如何传进来的。 使用如下简单的程序来演示 class A { private:int a[100];int b; public:void SetB(int b){ this-b b;}int GetB() { return this-b;} };int main() {A oa ;oa.SetB(0x888);int b oa.GetB();return 0; }编译后反汇编A::SetB汇编如下 0000000000400536 _ZN1A4SetBEi:400536: 55 push %rbp400537: 48 89 e5 mov %rsp,%rbp40053a: 48 89 7d f8 mov %rdi,-0x8(%rbp)40053e: 89 75 f4 mov %esi,-0xc(%rbp)400541: 48 8b 45 f8 mov -0x8(%rbp),%rax400545: 8b 55 f4 mov -0xc(%rbp),%edx400548: 89 90 90 01 00 00 mov %edx,0x190(%rax)40054e: 5d pop %rbp40054f: c3 retq可以看到寄存器rdi和esi分别表示第一个参数this和第二个参数int b。 最后通过mov %edx,0x190(%rax) 指令实现this-b b; 。 类内变量b相对于对象起始地址this的偏移是0x190可以通过gdb验证偏移量 (gdb) p (((A*)0)-b) $1 (int *) 0x190 (gdb)可以看到 编译器确实将this指针作为第一个参数传到非静态成员函数中了。 看了成员函数的汇编 再看看main函数中是如何调用的。 main函数的汇编如下 00000000004004fd main:4004fd: 55 push %rbp4004fe: 48 89 e5 mov %rsp,%rbp400501: 48 81 ec a0 01 00 00 sub $0x1a0,%rsp400508: 48 8d 85 60 fe ff ff lea -0x1a0(%rbp),%rax40050f: be 88 08 00 00 mov $0x888,%esi400514: 48 89 c7 mov %rax,%rdi400517: e8 1a 00 00 00 callq 400536 _ZN1A4SetBEi40051c: 48 8d 85 60 fe ff ff lea -0x1a0(%rbp),%rax400523: 48 89 c7 mov %rax,%rdi400526: e8 25 00 00 00 callq 400550 _ZN1A4GetBEv40052b: 89 45 fc mov %eax,-0x4(%rbp)40052e: b8 00 00 00 00 mov $0x0,%eax400533: c9 leaveq400534: c3 retq400535: 90 nopmain函数中定义了局部变量oa在栈上申请内存。 第三条指令sub $0x1a0,%rsp 表示在栈上申请了0x1a0个字节此时%rsp-0x1a0(%rbp)。-0x1a0(%rbp)其实就是栈顶也是对象oa的地址即this指针。 第四条指令lea -0x1a0(%rbp),%rax执行后this指针保存在%rax中。 第6/7条指令分别将this指针及变量int b(0X888)放入rdi及rsi表示第一/二个参数 然后调用A::SetB 上述程序对象在栈上。 如果对象在堆上的情况即通过new申请的对象可能会有所不同。
http://www.zqtcl.cn/news/388222/

相关文章:

  • 做网站可以不用框架吗网站301做下
  • 萍乡做网站深圳市福田区住房和建设局官网
  • 网站架构需求wordpress过去指定分类文章
  • 房管局备案查询网站功能型网站开发
  • 聊城手机网站建设服务自己开网站做职称论文可以吗
  • 企业网站禁忌手机端网站开发页
  • 深圳外贸商城网站建设wordpress 空搜索
  • 做微信的网站有哪些shop商城系统
  • 网站落地页如何做优化大师免费下载安装
  • 本地计算机做网站服务器做算命网站
  • 广州网站建设公司万齐网络科技做围棋题网站
  • 运动服装商城网站建设引流推广
  • 武进区城乡建设局网站聊城商城网站建设
  • 做网站开发赚钱吗网站建设电子书资料
  • wordpress 回收站在哪个文件夹建站之星模板好吗
  • 怎么用dw做博客网站天使投资平台官网
  • 淮安市网站建设crm网站
  • 门户网站主要特点和功能深圳地铁优化
  • 银川网站推广方式湖南建工交通建设有限公司网站
  • 知道网站域名怎么联系怎么创建自己的公司网站
  • 淘宝网站开发多少金额网站优化 福州
  • 百度推广让我先做虚拟网站后进一步优化落实
  • 好的网站建设启示汕头网页设计网站方案
  • 深圳网站制作开发免费精准客户软件
  • 网站超链接用什么南宁行业平台开发公司
  • 注册门户网站襄樊seo快速排名
  • 优秀的手机网站iis 设置此网站的访问权限
  • 用nat123做自己的网站深圳市建设工程质量检测中心官网
  • 网上做衣服的网站废旧网站哪个做的最好
  • 网站开发设置网页端口wordpress 知识库