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

企业自建网站的优缺点个人网站设计论文一万字

企业自建网站的优缺点,个人网站设计论文一万字,网站在线提交询盘系统 能直接发到邮箱,2017如何做企业网站最近#xff0c;被一个函数调用参数传递的问题困惑了一阵。自己写的解释程序#xff0c;一直用的好好的。在暗自得意的过程中#xff0c;突然出现了bug#xff0c;被泼了一头冷水。当然#xff0c;bug是在无意中被发现的#xff0c;确定以后则可以编制专用的代码来揭示它…最近被一个函数调用参数传递的问题困惑了一阵。自己写的解释程序一直用的好好的。在暗自得意的过程中突然出现了bug被泼了一头冷水。当然bug是在无意中被发现的确定以后则可以编制专用的代码来揭示它 func showargs(a, b, c) {print a, b, c;return c1; }showargs(1,2,3); 1 2 3 showargs(showargs(1,2,3),showargs(4,5,6),100); 4 5 6 1 2 3 4 2 3参数是自右向左传递的。但最后一个print打印的结果不对。最后一个print打印当然应该是[4 7 100]。不是自定义函数代码写错而是解释程序暴露了bug。 struct exprval e_fcall(int fi, struct node *paras, int *exception) {struct funxat *f;struct node *p;struct exprval e;int i;struct exprval ret;f userfunc[fi];p paras;i0;while(p) {p p-left;i;}if (i ! f-paras) {printf(function %s(...) need %d paras, but given %d\n,f-name, f-paras, i);*exception 1; goto exception_out;}p paras;for(if-paras-1; i0; --i) {e e_eval(p-right, exception); EXCEPTION_CHK;symtab_compile[DM_FOR_LOCAL].var[i] e;p p-left;}if (f-loop f-warning) {printf(waring: func %s(...) nest called in %d levels\n,f-name, f-loop);f-warning terminate_loop -(terminate_loop -f-warning)/4;}if (f-loop terminate_loop) {printf(exception: func %s(, f-name);for(i0; if-paras; i) {if(i0) printf(,);e symtab_compile[DM_FOR_LOCAL].var[i];if (e.type0) {printf(~%d, e.u.value);}else {printf(~%lf, e.u.d_value);}}printf() is terminated!;\n);*exception 1;goto exception_out;}f-loop;alloc_context(f);for(i0; if-paras; i) {stk-e[top].bp[i] symtab_compile[DM_FOR_LOCAL].var[i];}execute_e_ls(f-syntree, 0, exception); //.. ..............ret stk-e[top].ret;free_context();f-loop--;if (f-loop0) {f-warning terminate_loop - (terminate_loop/4);}exception_out:if (*exception1) {}return ret; }这是解释程序相关部分的代码。问题就在 for(if-paras-1; i0; --i) {e e_eval(p-right, exception); EXCEPTION_CHK;symtab_compile[DM_FOR_LOCAL].var[i] e;p p-left;}这个语句。symtab_compile[DM_FOR_LOCAL].var[i] e; 这个用法是导致出现bug的根本原因。由于固定位置重入传入的参数被后来嵌套的函数的参数传递覆盖了。当时这样用是因为程序在执行期间 symtab_compile[DM_FOR_LOCAL].var[]作为为编译配置的内存资源被闲置着。记得当时隐约觉得这样写有些不妥但稍微细想一下又没发现问题。终于抵制不住诱惑挪用了配置给编译期的内存。正解当然是动态分配一个f-paras个数的mixtype数组来存放参数最后在函数返回时候释放它。遇到嵌套的函数时因为会重新一个这样的分配就不会出现重入的问题不会发生参数覆盖这样就解决问题了。 修复的代码就不展示了。因为个人还不死心仍然想利用这个闲置的编译期的内存。当然改动会变得复杂还会有更多的坑需要去踩… …
http://www.pierceye.com/news/885759/

相关文章:

  • 外贸做的亚马逊网站是哪个好产品怎样推广有效
  • 网站后台数据库备份怎么做怎样在阿里做网站
  • 后台网站手机版视频怎么做安阳百姓网
  • 设计公司网站公司详情域名解析网站登录
  • 优秀学校网站设计可以免费下源码的网站
  • 榆林高端网站建设xampp使用教程 wordpress
  • 站长工具搜一搜找做网站的
  • 建一个域名网站要多少钱南京哪里有做网站的
  • 网站群的建设网站建设自助建站制作
  • 怎么做网站程序标书制作教程全过程
  • 学网站建设前景印度做杂质的网站
  • 网站的建设意义盐城网站建设找哪家好
  • 赤峰市网站建设年轻人免费在线看视频
  • 使用word做网站网络广告的特点有哪些?
  • 网站系统参数设置定制网站的制作流程
  • 做家教网站公司品牌vi设计升级
  • 唯品会网站建设建议浙江网站建设价格费用
  • 网站建设购买深圳有做网站的公司有哪些
  • 网站预算表怎么做网站域名续费怎么续费
  • 宁波建设网站公众号关注编辑网站教程
  • 怎样自己做刷赞网站开发软件需要多少成本
  • 为什么网站之有首页被收录广西两学一做网站
  • 制作网站需要的软件怎么向google提交网站
  • 济南网站的建设公司网站建设征求意见表
  • 小学校园网站建设简介打开网站弹出一张图片 怎么做
  • 做外贸没有网站需要注意什么条件做简历模板的网站都有哪些
  • 铜陵保障性住房和城乡建设网站舞钢市城乡建设局网站
  • 企业网站总承包建设模式关键步骤凡科论文送审平台
  • 石家庄学校网站建设在线定制签名
  • 新泰网站制作公司免费下载百度seo