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

网站建设如何导入音乐百度产品推广

网站建设如何导入音乐,百度产品推广,充值网站建设,搭建一个网站 优帮云简介 先说i和i的区别&#xff0c;判断语句中if(i)是拿i的值先判断&#xff0c;而后自增&#xff1b;if(i)是先自增i再进行判断。涉及到左值与右值也有点区别&#xff0c;i返回的是右值&#xff0c;i返回的是左值。也就是下面的代码要解释的东西。 #include <iostream>i…

简介

先说++ii++的区别,判断语句中if(i++)是拿i的值先判断,而后自增;if(++i)是先自增i再进行判断。涉及到左值与右值也有点区别,i++返回的是右值,++i返回的是左值。也就是下面的代码要解释的东西。

#include <iostream>int main()
{//后置自增,返回右值int i = 0;auto pi = &(i++); 错误 右值无法取地址//前置自增,返回左值int j = 0;auto pj = &(++j);// 正确std::cout << "Hello World!\n";
}

转折

老生常谈的经验是++ii++性能好,因为++i中间会产生临时变量,参考这篇文章的解释http://t.csdn.cn/2A7PT。实际上较新的编译器,简单的自增没有差别了。我们看下汇编代码:

int i = 0;
00007FF73AD21C9B  mov         dword ptr [i],0  i++;
00007FF73AD21CA2  mov         eax,dword ptr [i]  
00007FF73AD21CA5  inc         eax  
00007FF73AD21CA7  mov         dword ptr [i],eax  int j = 0;
00007FF73AD21CAA  mov         dword ptr [j],0  ++j;
00007FF73AD21CB1  mov         eax,dword ptr [j]  
00007FF73AD21CB4  inc         eax  
00007FF73AD21CB6  mov         dword ptr [j],eax  

i++++j的汇编代码一模一样,基本不涉及临时变量。

我们加上if进行观察:

    int i = 0;
00007FF7BEB91C9B  mov         dword ptr [i],0  if (i++)
00007FF7BEB91CA2  mov         eax,dword ptr [i]  
00007FF7BEB91CA5  mov         dword ptr [rbp+0F4h],eax  
00007FF7BEB91CAB  mov         eax,dword ptr [i]  
00007FF7BEB91CAE  inc         eax  
00007FF7BEB91CB0  mov         dword ptr [i],eax  {}//前置自增,返回左值int j = 0;
00007FF7BEB91CB3  mov         dword ptr [j],0  if (++j)
00007FF7BEB91CBA  mov         eax,dword ptr [j]  
00007FF7BEB91CBD  inc         eax  
00007FF7BEB91CBF  mov         dword ptr [j],eax  {}

注意:00007FF7BEB91CA5 mov dword ptr [rbp+0F4h],eax 这行代码是把i++前的值拷贝到临时变量了,临时变量的地址是rbp+0F4h。而后才对i进行自增操作。

总结

也就是说编译器优化仅对简单的自增进行了优化,但是复杂的,甚至仅仅是套了一层if,编译器是不会优化的,因为要兼容已有的代码。如果if里面的也做优化,则之前那么多的程序岂不是要炸了💣?也就是语义上要保持连贯性,已经形成共识的东西编译器是会传承下去的。

再一个也是不理解既然汇编语言i++++i都一样,为什么&i++还是会报无法对右值取地址,其实也是编译器对这种复杂点的语句,不会对前置自增后置自增进行优化,生成汇编代码的时候还是对右值取的地址,导致的报错。

http://www.hkea.cn/news/857256/

相关文章:

  • 做网站文字字号大小企业网站设计要求
  • ae有么有做gif的网站品牌推广方案范文
  • apicloud官网下载seo关键词优化排名公司
  • 上海网站制作福州百度关键字优化精灵
  • 做uml图网站百度账号快速注册入口
  • 广西梧州南京 seo 价格
  • 网站警察备案seo关键词优化平台
  • 网站开发设计实训 报告惠州网站建设
  • 网站开发的原理山西免费网站关键词优化排名
  • 石家庄网站建设全包免费推广网站2024
  • 阿里云网站备案时间无锡seo网站管理
  • 景点介绍网站模板重庆百度关键词推广
  • 做亚马逊网站费用吗曲靖新闻今日头条
  • bing 网站管理员2023今日新闻头条
  • 深圳市做网站前十强百度一下搜索网页
  • 做执法设备有哪些网站国家免费培训学校
  • 顺德乐从有做阿里巴巴的网站吗杭州网站设计
  • 做英文网站 用阿里服务器行吗b2b网站推广排名
  • 搭建网站做淘宝客网赌怎么推广拉客户
  • 网站建设前台与后台最新技术2021最新免费的推广引流软件
  • 做网站基本语言淘宝如何提升关键词排名
  • wordpress怎样分类目录添加标签seo文章范文
  • 订阅号可以做网站吗南宁seo外包服务商
  • 邢台哪儿做网站便宜宁波 seo排名公司
  • 深圳网站优化咨询网上广告怎么推广
  • 网站右击无效是怎么做的网络营销产品
  • 中宣部网站政治建设网站服务器是什么意思
  • 淮安网站定制徐州seo外包公司
  • 嘉兴类网站系统总部网站建设技术解决方案
  • 做网站的教科书外包网络推广公司推广网站