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

php做小公司网站用什么框架厦门建设局网站

php做小公司网站用什么框架,厦门建设局网站,用别人代码搭建网站,银川网站建设哪家好叫啥名字有一个建议说时函数传递参数最好不超过四个#xff0c;原因有一个是参数太多难以维护#xff0c;另一个重要的原因就是函数传递小于四个参数时候效率会更高#xff0c;其实这个说法也不全对#xff0c;在不同的结构下不太一样#xff0c;也不一定是4 其实那么下面将探究函…有一个建议说时函数传递参数最好不超过四个原因有一个是参数太多难以维护另一个重要的原因就是函数传递小于四个参数时候效率会更高其实这个说法也不全对在不同的结构下不太一样也不一定是4 其实那么下面将探究函数参数传递相关的问题 X86架构 这里拿比较常用的cdecl举例先来一个简单的函数去传递六个参数去看传递的过程 #include stdio.h #include stdlib.hint foo (int arg1, int arg2, int arg3, int arg4, int arg5, int arg6) { int array[] {arg1, arg2, arg3, arg4, arg5, arg6};return 0; } int main () {foo(1, 2, 3, 4, 5, 6);return 0; } foo(1001, 1002, 1003, 1004, 1005, 1006)的反汇编 ESP为栈顶每条都将一个立即数常量值存储到相对于堆栈指针esp偏移一定字节数的位置也就是将这四个参数进行了压栈处理 int array[] { arg1,arg2,arg3,arg4,arg5,arg6 }的反汇编 会发现每回都从栈[rsp0xXX]里面取到一个参数并放到array里面 X86的参数传递调用约定 在32位的调用约定有cdecl(C标准)stdcall(WinAPI默认)fastcall三种 cdeclstdcall下规定参数传递顺序为从右到左依次压栈 fast下规定参数1、参数2、参数3、参数4分别保存在 RCX、RDX、R8D、R9D 剩下的参数从右往左一次入栈 X64架构  传递6个参数 #include stdio.h #include stdlib.hint foo (int arg1, int arg2, int arg3, int arg4, int arg5, int arg6) { int array[] {arg1, arg2, arg3, arg4, arg5, arg6};return 0; } int main () {foo(1, 2, 3, 4, 5, 6);return 0; } foo(1001, 1002, 1003, 1004, 1005, 1006)的反汇编 可以发现1234四个变量分别存入到了EAXEDX, R8D, R9D中了 但是多出去的56两个变量传递也压到了栈里面 后面的过程1234四个值会直接从EAXEDX, R8D, R9D四个寄存器中拿到 而56就需要[rsp0x28]和[rsp0x20]中拿到了 X64的调用约定 参数1、参数2、参数3、参数4分别保存在 RCX、RDX、R8D、R9D 剩下的参数从右往左一次入栈 ARM架构 ARM的CPU结构和X86不一样所以寄存器的命名不一样 和X64方式差不多前四个参数放到了r1,r2,r3,r4四个寄存器中剩下的也进行了压栈 Arm的调用约定 ARM和ARM64使用的是ATPCS(ARM-Thumb Procedure Call Standard/ARM-Thumb过程调用标准)的函数调用约定 参数1~参数4 分别保存到 R0~R3 寄存器中 剩下的参数从右往左一次入栈被调用者实现栈平衡返回值存放在 R0 中 区别和结论 当直接访问寄存器的时候不进行内存访问CPU访问寄存器的速度大概在1-2个时钟周期 当你从[rsp0xXX]获取数据时实际上是在进行一次内存访问内存访问的时钟周期大概在几十到上百之间但是现代CPU的chche的结构会缩短这个时间但是远远和直接访问寄存器的访问速度差的很远 可见在特定的结构中参数数量会对程序访问参数的速度有着一定的影响
http://www.tj-hxxt.cn/news/233416.html

相关文章:

  • 宁波seo推广推荐公司aso优化技术
  • 长春建站怎么做cf小号自助购买网站
  • 网站整体地图怎么做做网站是否用数据库
  • 网站建设课设总结自助建网站哪个便宜
  • h5模板网站免费有哪些做兼职的设计网站有哪些
  • 深圳网站设计兴田德润简介wordpress需要备案
  • dede网站搬家更换空间重新安装普通话考试最后一题万能模板
  • 2014 网站建设wordpress加文字水印
  • 遂宁网站建设跨境o2o网站建设方案
  • 国外公司建站系统wordpress mylife
  • 网站充值功能怎么做在线考试系统网站开发
  • 拼多多网站建设框架图可以做外贸私单的网站
  • 网站推广无锡番禺网站建设番禺网络营销
  • 济南章丘网站建设响应式网站布局
  • 电子商务网站设计心得一单一结手机兼职
  • 普陀区网站建设前端wordpress文章编辑器可视化
  • 广州h5网站开发wordpress联系我们无法发邮件
  • 中山网站模板南京logo设计公司
  • 免费注册二级域名的网站自己服务器建网站
  • 南阳微网站建设跨境电商免费开店的有哪些
  • 龙岗网站-建设深圳信科手机网站的网址是什么原因
  • 手机网站广告代码深圳公共资源交易中心
  • 网站开发开题报告关键问题云系统网站建设合同
  • 网站建设与管理 宋一兵郑州微网站开发
  • 湖南电商网站建设响应式网站居中
  • 安徽工程建设信息网站阿里万网站建设
  • org后缀的网站昆山做网站的个人
  • 做离线版申报表进入哪个网站大数据网络营销
  • 重庆网站建设百度推广网络推广培训班课程
  • 桂林网站建设费用视频网站建设 方案