问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如果C语言函数参数太多,可以怎么优化

发布网友 发布时间:2022-04-27 00:14

我来回答

1个回答

热心网友 时间:2022-06-21 07:22

一个函数的参数的数目没有明确的*,但是参数过多(例如超过8个)显然是一种不可取的编程风格。参数的数目直接影响调用函数的速度,参数越多,调用函数就越慢。另一方面,参数的数目少,程序就显得精练、简洁,这有助于检查和发现程序中的错误。因此,通常应该尽可能减少参数的数目,如果一个函数的参数超过4个,你就应该考虑一下函数是否编写得当。 如果一个函数不得不使用很多参数,你可以定义一个结构来容纳这些参数,这是一种非常好的解决方法。在下例中,函数print_report()需要使用10个参数,然而在它的说明中并没有列出这些参数,而是通过一个RPT_PARMS结构得到这些参数。 # include <atdio. h> typedef struct ( int orientation ; char rpt_name[25]; char rpt_path[40]; int destination; char output_file[25]; int starting_page; int ending_page; char db_name[25]; char db_path[40]; int draft_quality; )RPT_PARMS; void main (void); int print_report (RPT_PARMS* ); void main (void) { RPT_PARMS rpt_parm; /*define the report parameter structure variable * / /* set up the report parameter structure variable to pass to the print_report 0 function */ rpt_parm. orientation = ORIENT_LANDSCAPE; rpt_parm.rpt_name = "QSALES.RPT"; rpt_parm. rpt_path = "Ci\REPORTS" rpt_parm. destination == DEST_FILE; rpt_parm. output_file = "QSALES. TXT" ; rpt_parm. starting_page = 1; rpt_pann. ending_page = RPT_END; rpt_pann.db_name = "SALES. DB"; rpt_parm.db_path = "Ci\DATA"; rpt_pann. draft_quality = TRUE; /*call the print_report 0 function; paaaing it a pointer to the parameteM inatead of paMing it a long liat of 10 aeparate parameteM. * / ret_code = print_report(cu*pt_parm); } int print_report(RPT_PARMS*p) { int rc; /*acccM the report parametcra paaaed to the print_report() function */ oricnt_printcr(p->orientation); Kt_printer_quality((p->draft_quality == TRUE) ? DRAFT ; NORMAL); return rc; } 上例唯一的不足是编译程序无法检查引用print_report()函数时RPT_PARMS结构的10个成员是否符合要求。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
脚崴了挂什么科、急急急 linux 解压缩工具--tar命令 生日祝福语闺蜜 简短独特暖心 QQ有哪些隐藏的图标??他们分别是什么??怎么样点亮?? QQ业务的各种图标怎么点亮? qq怎么点亮图标和名字 诗中书万象=求下联 大爱如山藏万象下联 中国电子展:电位器和可调电阻的区别是什么?这四点很明显 电位器的接线方法是什么 电位器的工作原理如何 连杆轴瓦坏了的现象 c语言如何优化代码不占cpu 汽车连杆活塞坏了怎么办 如何进行C盘手动优化? 如何优化C++程序代码编写 五菱宏光小连杆咚咚异响 几种C语言优化代码技巧 汽车前稳定杆连接杆坏了会怎么样 这个C语言程序怎么优化比较好? 奥迪a6前横向稳定杆小连杆坏了什么症状 梦见老公半夜抱被子回家 梦见老公抱着一口钟回家 梦见老公在外抱一堆茐回家 长春长生生物科技股份有限公司怎么样? 长生生物疫苗案致市值蒸发多少亿? 孕妇梦见老公把好多尸体抱回家 长春长生疫苗事件 狂苗批号201709065是假药苗? 长春长生已被公安机关立案调查吗? 昨天晚上睡觉梦到我老公把我带到老家,我下车后一直走了一路水是怎么回事? 长春长生到底用了多大的发酵罐 发动机连杆轻微变形症状 【50分】c语言程序优化 发动机连杆小头铜套损坏会导致什么结果 c语言算法优化 C/C++代码在实时程序设计中是怎么优化的? 汽车悬挂出故障如何看出 C语言小程序优化 连杆弯曲和扭曲后会导致发动机什么原因 C中用什么方法进行效率优化 摩托车曲轴损坏都什么症状 c语言优化,有满意答案给100分 怎么判断平衡轴坏了? C程序优化 发动机轻微拉缸有何现象? 怎么样对我的C:/盘进行手动的优化 c语言怎样优化代码减少占用ram 牛皮席子粘怎么办 搽来搽去 还是粘 如何提高C语言代码效率 夏天躺在凉席上怎么才能不粘身子 如何优化C代码ARMCC问题,怎么解决