保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

为什么不建议函数有太多参数?

  记录一篇今天工作的思考。为什么不建议函数的有太多参数?
  今天做组内代码评审时,发现同事的代码有一个小问题,一个函数添加了一个参数后有了7个参数,而公司的编码规范要求,函数的参数不许超过6个。
  后来我就研究了一下,为啥不建议函数有太多参数呢?当然函数参数太多,不利于维护,学习成本比较高。除此之外,函数参数太多对性能也有一定的影响。观察参数传递方式
  我做了一个实验,观察对含有6个、7个、8个参数的函数进行调用时,到底有哪些不同,测试代码如下:includeiostreamvoidfunc6(intp1,intp2,intp3,intp4,intp5,intp6){}voidfunc7(intp1,intp2,intp3,intp4,intp5,intp6,intp7){}voidfunc8(intp1,intp2,intp3,intp4,intp5,intp6,intp7,intp8){}intmain(){func6(1,2,3,4,5,6);func7(1,2,3,4,5,6,7);func8(1,2,3,4,5,6,7,8);return0;}
  我们查看汇编代码,来观察调用时如何传递参数。
  我们看一下func6的调用,全部通过寄存器传递。0x00005555555551ce8:movr9d,0x60x00005555555551d414:movr8d,0x50x00005555555551da20:movecx,0x40x00005555555551df25:movedx,0x30x00005555555551e430:movesi,0x20x00005555555551e935:movedi,0x10x00005555555551ee40:call0x555555555169func6(int,int,int,int,int,int)
  我们看一下func7的调用,参数16通过寄存器,参数7通过堆栈传递。0x00005555555551f345:push0x70x00005555555551f547:movr9d,0x60x00005555555551fb53:movr8d,0x50x000055555555520159:movecx,0x40x000055555555520664:movedx,0x30x000055555555520b69:movesi,0x20x000055555555521074:movedi,0x10x000055555555521579:call0x555555555188func7(int,int,int,int,int,int,int)
  我们看一下func8的调用,参数16通过寄存器,参数78通过堆栈传递。0x000055555555521e88:push0x80x000055555555522090:push0x70x000055555555522292:movr9d,0x60x000055555555522898:movr8d,0x50x000055555555522e104:movecx,0x40x0000555555555233109:movedx,0x30x0000555555555238114:movesi,0x20x000055555555523d119:movedi,0x10x0000555555555242124:call0x5555555551a7func8(int,int,int,int,int,int,int,int)结论
  gcc编译器(gcc9),在x64环境下。函数调用时,前6个参数通过寄存器传递,超过6个后面的参数通过堆栈传递。而寄存器传递参数比堆栈传递效率高,所以建议函数参数不要超过6个。
  学习c还是要学习一些汇编的,可以解决很多问题啊。
  最后,东北码农,全网同名,求关注、点赞、转发,谢谢

为什么手机用久了,就不那么流畅了,啥原因?这很正常。属于正常的物件损耗。毕竟不可能所有的东西一直用都不会旧的吧。原因有那么几个,首先是电子零部件的正常损耗,电子零部件不像是我们的大件物品那样。它是极其精密的,特别是现在……如果摆在你面前,华为和荣耀旗舰手机,怎么挑选?支持小米感谢邀请如果摆在你面前,华为和荣耀旗舰手机,怎么挑选?实际我觉得不管免费不免费,我觉得大部分人都应该会去选择华为手机,当然这里建立在旗舰手机以上。毕竟中低端……华为可以成长为像三星一样的综合企业吗?我来回答这个问题吧!华为是全球顶级科技巨头,华为实力足以挑战西方在科技领域的主导地位,实力绝对碾压任何对手,华为专注于科技研发和引领全球科技产业竞争优势,而可怜的三星集中了韩国……介绍我自己的450字作文范文初中自我介绍450字小女孩,高高的个子,细细的眉毛下有一双水汪汪的大眼睛。一头乌黑的短发,样子像个假小子。呵呵,这就是我。我的性格活泼开朗,嫉恶如仇,看到不公……探险乐园小记叙事作文探险乐园,听着这个名词我们就会有很多想象,各位,我们一起看看下面的探险乐园小记叙事作文吧!探险乐园小记叙事作文周六上午休息,妈妈带着我和我的好朋友灿灿一起去体验了探险游戏……高二写景作文绿色绿,生命的颜色在我们这个世界里,绿,主宰着一切。(总写)春天,万物复苏,最先向人们报告春天的。是那么一丁点儿绿色,这使人们感觉到新的生命又开始了,绿色越来越多,春色……与朋友聊QQ日记50字春节在西塘认识了妈妈同学的女儿刑悠然,我们互留了qq号,回到深圳我们约着上了一次qq。因为我回复很慢她急了,她直问ldquo;你在吗?你在吗?rdquo;。我也急,因为我打字实……中国电信5G消息正式商用个人接收免费近日,中国电信宣布正式商用5G消息业务。目前,5G消息个人接收免费;企业按照不同消息类型有多种计费模式。说到5G消息,也许大家也不陌生。5G消息是短信业务的升级,是运营商……游儿童公园作文一觉醒来后感觉不错,我盯着这相继我一样的头去了卫生间,我迅速的刷牙,洗脸,等着给下一位用,因为自从我们一会来卫生间就变得特别繁忙,紧张,因为人多嘛!等洗完刷完后就该开饭了……一句名言的启示优秀作文500字我喜欢的名言有很多:三人行,必有我师,择其善而从之,其不善而改之;世上无难事,只怕有心人;不怕人有错,就怕改不过。其中,我最喜欢的名言是谦虚使人进步,骄傲使人落后。一直以……为什么不建议函数有太多参数?记录一篇今天工作的思考。为什么不建议函数的有太多参数?今天做组内代码评审时,发现同事的代码有一个小问题,一个函数添加了一个参数后有了7个参数,而公司的编码规范要求,函数的……人教版八年级下册四单元作文一份宝贵的精神文化遗产我国的传统节日形式多样,内容丰富,是我们中华民族悠久的历史文化的一个组成部分。节日的起源和发展是一个逐渐形成,潜移默化地完善,慢慢渗入到社会生活的过程。它和社会的发展一样……
助听器对耳聋患者有哪些好处?助听器可以帮助听损患者听到更多声音,听得更加清楚,提高生活品质,保护残余听力,保护言语分辨率下降缓慢,希望我的回答对您有所帮助。助听器作为一个声音放大装置,能有效地放大外……民族团结演讲稿民族团结之花蔚蓝的天空,因为有了白云的点缀,才不会寂寞;宽广的大地,因为有了万物的装点,才显得生机盎然。在由56个民族构成的祖国大家庭里,在多民族聚居、美丽富饶的新疆,我们仅有互相依存,互……奔驰EQE领衔4款纯电车型亮相慕尼黑车展康林松豪华车应在电动每经记者:李硕每经编辑:孙磊由电动为先向全面电动加速转型的奔驰,开始集中展现自身在新能源领域的雄厚实力。9月6日,在慕尼黑举办的2021德国国际汽车及智慧出行博览会……台湾有什么著名的大公司吗?放在全国,还是放在全球台湾省的经济实力并不俗。虽然台湾土地面积不大,人口不多,但由于经济发展起步较早(比大陆地区早了20年左右),因此经济发展水平已经很高了,进入了高收入行列。……为什么感觉中国卫星多在太原和酒泉发射?酒泉卫星发射中心的场地不在甘肃,而是在内蒙古。太原卫星发射中心的场地不在太原,而是在忻州。都误会了。这些位置啥的,重要性啥的,少讨论,大多涉密,中国人要有国家安全意识……为什么满街的手机店感觉基本没什么生意却还没有倒闭?本人是经营一家手机店的,具体谈谈为什么没有多少生意在撑着。一、我们店在这个镇上辅街上,位置不佳,房租便宜。然后店里就我和我老婆两个人,就是传说中的夫妻店,人员成本低。……华为能否彻底离开美国技术?注意是美国技术?除非说你准备回到原始社会,要不然的话,谁都不能彻底离开美国技术。别的不说了,就说咱们日常中需要用到的电吧!咱们用的电,不是交流电就是直流电,但无论是交流电还是直流电,其技术发明……2017圣诞节的愿望优秀作文圣诞节快要到了,你想跟圣诞老人许什么愿望呢?下面是小编收集整理的2017圣诞节的愿望优秀作文,欢迎阅读。2017圣诞节的愿望优秀作文(一)每年的圣诞节,因为我表现很……元宇宙这场美梦,万一实现了呢?布道者2014年,扎克伯格试用Rift原型机后没再犹豫,用股权凑齐20亿美金收购了提供商Oculus;7年后,张一鸣挥手90亿收购VR头盔提供商PICO,宣布字节入……宇宙中的物质从哪里来?宇宙中的恒星宇宙是时间、空间、物质与能量的集合体。宇宙由68的暗能量、27的暗物质和5的可见物质组成。现在宇宙中有上千亿个星系,每个星系又有1000亿至4000亿颗恒星,……假如太阳停止发光发热,人类的时间就只剩下八分钟了吗?如果太阳突然停止发光发热,地球上的人类会在大约8分20秒后才会感知到。地球与太阳的间相隔为一个天文单位,其具体的距离大约为15000万公里,而光在真空中的传播速度大约30……人死后48小时内会有哪些变化?活着的时候,人一辈子都在为自己打算,出门穿什么衣服,午饭吃什么,晚上去哪里玩,要买什么样的房子车子,过什么样的生活。那当人体死亡后,你会面临什么,很少有人关注。人们……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网