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

多语言网站 seo网站子目录怎么做的

多语言网站 seo,网站子目录怎么做的,福田庆三下巴,电子商务网站平台开发建设方案面试题5#xff1a;函数调用的过程 C 中函数的调用包含参数入栈、函数跳转、保护现场、回复现场等过程#xff0c;重点过程如下#xff1a; #xff08;1#xff09;将函数的参数压入栈中#xff0c;从右至左压入。 #xff08;2#xff09;调用函数时#xff0c;将当…面试题5函数调用的过程 C 中函数的调用包含参数入栈、函数跳转、保护现场、回复现场等过程重点过程如下 1将函数的参数压入栈中从右至左压入。 2调用函数时将当前程序的执行位置即返回地址压入栈中。 3将函数的栈帧也称为活动记录压入栈中。栈帧包含了函数的局部变量、函数返回值、函数的上一级调用者的栈帧指针等信息。 4执行函数体内的语句包括局部变量的声明和初始化、函数体语句的执行等。 5函数执行完毕后将函数的返回值保存在寄存器中或者栈中。 6弹出函数的栈帧并将返回值传递给上一级函数。 7将返回地址弹出栈中程序跳转到该地址继续执行。 以如下代码为例 64 位程序 #include iostreamint add(int a, int b) {int sum a b;return sum; }int main() {int sum add(1, 2);return 0; }首先给 main() 函数的第一行 int sum add(1, 2); 打上断点调试运行程序。 程序暂停后查看当前汇编代码 VS2017 查看方法右击当前代码页选择转到反汇编 int main() { 00007FF67D8AA630 push rbp 00007FF67D8AA632 push rdi 00007FF67D8AA633 sub rsp,108h 00007FF67D8AA63A lea rbp,[rsp20h] 00007FF67D8AA63F mov rdi,rsp 00007FF67D8AA642 mov ecx,42h 00007FF67D8AA647 mov eax,0CCCCCCCCh 00007FF67D8AA64C rep stos dword ptr [rdi] 00007FF67D8AA64E lea rcx,[__81FC6F77_main2cpp (07FF67D9E41D7h)] 00007FF67D8AA655 call __CheckForDebuggerJustMyCode (07FF67D874108h) int sum add(1, 2); 00007FF67D8AA65A mov edx,2 00007FF67D8AA65F mov ecx,1 00007FF67D8AA664 call add (07FF67D87584Bh) 00007FF67D8AA669 mov dword ptr [sum],eax return 0; 00007FF67D8AA66C xor eax,eax }在汇编代码中程序暂停在第 14 行00007FF67D8AA65A mov edx,2。后面的两行是传入参数的过程其中edx是数据寄存器常用于存储一些大于 AX 寄存器的 16 位数和 32 位数的运算中的高位数。在函数调用中 edx 寄存器用于存储第一个参数值。ecx是计数寄存器常用于存储循环计数器和移位操作的计数器。在函数调用中 ecx 寄存器用于存储第二个参数值。通过这两行传入的值可以看出调用函数时参数入栈时从右往左。 汇编行00007FF67D8AA664 call add (07FF67D87584Bh)用于跳转到待调用的函数内但这里需要注意的是地址07FF67D87584Bh并不是待调用的函数的地址该代码会执行到下面这一行 00007FF67D87584B jmp add (07FF67D8AA5C0h) 这里的地址07FF67D8AA5C0h才是真正待调用函数的地址。下面即进入被调用函数内部 int add(int a, int b) { 00007FF67D8AA5C0 mov dword ptr [rsp10h],edx 00007FF67D8AA5C4 mov dword ptr [rsp8],ecx 00007FF67D8AA5C8 push rbp 00007FF67D8AA5C9 push rdi 00007FF67D8AA5CA sub rsp,108h 00007FF67D8AA5D1 lea rbp,[rsp20h] 00007FF67D8AA5D6 mov rdi,rsp 00007FF67D8AA5D9 mov ecx,42h 00007FF67D8AA5DE mov eax,0CCCCCCCCh 00007FF67D8AA5E3 rep stos dword ptr [rdi] 00007FF67D8AA5E5 mov ecx,dword ptr [rsp128h] 00007FF67D8AA5EC lea rcx,[__81FC6F77_main2cpp (07FF67D9E41D7h)] 00007FF67D8AA5F3 call __CheckForDebuggerJustMyCode (07FF67D874108h) int sum a b; 00007FF67D8AA5F8 mov eax,dword ptr [b] 00007FF67D8AA5FE mov ecx,dword ptr [a] 00007FF67D8AA604 add ecx,eax 00007FF67D8AA606 mov eax,ecx 00007FF67D8AA608 mov dword ptr [sum],eax return sum; 00007FF67D8AA60B mov eax,dword ptr [sum] }这段汇编代码的第 2 行到第 15 行之间是对该函数的栈初始化工作由编译器自动添加。其中 rsp 32 位程序中是 esp 、rbp 32 位程序中是 ebp 、rdi 32 位程序中是 edi 是常用的寄存器 rsp 为栈指针常用来指向栈顶。上面汇编代码中第 6 行00007FF67D8AA5CA sub rsp,108h的意思是将栈顶指针往上移动 108h Byte。这个区域为间隔空间将被调用的 add 函数与 main 函数的栈区域隔开一段距离同时还要预留出存储局部变量的内存区域。 rbp 为基址指针常用来指向栈底。 rdi 为目的变址寄存器。 上面汇编代码的第 17 行到第 21 行之间是进行两数相加的逻辑操作。 执行到第最后一行后打开寄存器查看器 VS2017 查看方法调试–窗口–寄存器可以查看到如下值 RAX  0000000000000003 RBX  0000000000000000 RCX  0000000000000003 RDX  0000000000000002 RSI  0000000000000000 RDI  0000005BD30FFA58 R8   0000020993014F70 R9   0000005BD30FF954 R10  0000000000000013 R11  00000209930242E0 R12  0000000000000000 R13  0000000000000000 R14  0000000000000000 R15  0000000000000000 RIP  00007FF67D8AA60B RSP  0000005BD30FF950 RBP  0000005BD30FF970 EFL  00000206 0x0000005BD30FF974  00000003 查看寄存器 RDI 的内存值 VS2017 查看方法调试–窗口–内存-内存1 0000005bd30ffb78 0000005bd30ffa90 00007ff67d8aa669 00007ff600000001 cccccccc00000002 cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc其中第三个值 00007ff67d8aa669 是 main 函数中调用该函数后的下一行汇编代码。 至此整个调用过程结束。 面试题6怎样判断两个浮点数是否相等 由于浮点数存入时有可能因为四舍五入而造成精度损失所以两个浮点数直接用操作符进行比较很可能会得到不符合预期的结果。 浮点数的比较应该使用如下方式 对于浮点数而言比较合适的精度为0.000001 对于双精度浮点数而言比较合适的精度为0.0000000000000001 因此可以定义两个宏 #define ACCURACY_F 1e-6 #define ACCURACY_D 1e-16判断浮点数是否等于 0 float 类型if(fabs(f) ACCURACY_F ); double 类型if(fabs(d) ACCURACY_D); 判断两个浮点数是否相等 float 类型if(fabs(f1 - f2) ACCURACY_F); double 类型if(fabs(d1 - d2) ACCURACY_D);
http://www.dnsts.com.cn/news/106284.html

相关文章:

  • 厦门做网站找哪家公司青岛网站建设博采网络
  • 网站开发留言板代码素材网下载
  • asp网站做文件共享上传网站开发运营费用
  • 微信公众号的跳转网站怎么做酒店网站建设方案策划
  • 个人养老保险缴费查询刷移动关键词优化
  • 手机网站单页怎么做怎么做qq盗号网站
  • 做品牌网站的青鸟网站开发实例
  • 给前端做网站的图片叫什么wordpress 中文手册
  • 网站建设教程视频上海室内设计工作室排名
  • 百度站长平台链接什么是互联网销售
  • 官方网站下载官方版本做电影网站能不能赚钱
  • 个人网站备案容易吗30天网站建设实录视频云盘
  • 搜索引擎营销成功的案例兰州seo关键词优化
  • 宁国市网站关键词优化外包城乡和建设部建造师网站
  • 常州微信网站建设流程网站建设流程代理商
  • 徐州模板建站系统wordpress微信机器人高级版
  • 野花社区在线观看高清视频动漫班级优化大师怎么下载
  • 校园网站建设网站建设公司咨
  • seo爱站网自己怎么设计公司的logo
  • 做期货关注网站宜昌小学网站建设
  • dede网站名称网站页头制作
  • 凌河网站建设推广wordpress特效主题免费
  • 武进建设局网站为何老是打不开公司网站建设基本流程
  • 优科技网站建设最新新闻热点事件2022年
  • 网站维护费用怎么收做网站申请完空间后下一步干啥
  • 株洲网站推广优化深圳 做网站
  • 网站制作完成后如何发布ppt素材大全免费图片
  • icp网站 是什么意思十堰秦楚网
  • 接网站建站公司手机网站适合分开做
  • 孔为民医生个人网站网站建设市场占有率