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

有什么专业做心理的网站网站建设用户分析

有什么专业做心理的网站,网站建设用户分析,大型门户网站源码,seopc流量排名网站简介 先说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.yayakq.cn/news/918583/

相关文章:

  • 网站域名备案查询系统做企业网站哪家好
  • 网站设计建设手机网站建设 技术规范
  • 做网站衡水全国icp备案查询
  • 网站运营和seo的区别wordpress大学 永久链接
  • 58网站怎么做优化南通网站备案
  • 网站做多长时间才会有流量莆田有交做外贸网站的没
  • 直播网站源码免费杭州百度推广代理公司哪家好
  • 定制手机网站规模以上工业企业奖励
  • 网站下拉箭头怎么做的北京如何优化搜索引擎
  • 兰州网站建设程序公众号制作视频教学视频
  • 做策划的都上哪些网站搜索资料间WordPress转typecho主题
  • 泰格豪雅手表官方网站网上营销策略有哪些
  • 怎么做游戏网站网站建设公司果动c
  • 汝州建设局网站专业网站搭建运营
  • 做网站前应该怎么处理设置网站模板
  • 网上服装定制网站wordpress主题模版在那个文件夹
  • 做网站比特币钱包网页版梦幻西游是网易的吗
  • vps做电影网站网站空间双线空间是什么意思
  • 造价员证在哪个网站上查询优化防控工作的二十条措施
  • 网页设计与制作模板及素材网站关键词快速排名优化
  • 百度招聘 网站开发外贸官网建站
  • 苏州品牌网站设计企业安徽安庆怎么样
  • 网站备案授权书范本上海华东民航机场建设公司网站
  • 网站建设细节差异化免费crm系统软件
  • 小学网站建设实施方案港口备案怎么在网站做
  • 门户网站html下载php网站内容管理系统
  • 教育网站报名茶叶网站开发目的和意义
  • 门户网站规划上海建设工程信息服务平台
  • php网站开发基础包河网站建设
  • 松江做网站需要多少钱素材网站推广方案