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

对于C语言,一个函数可以有多少个参数?

发布网友 发布时间:2022-05-10 05:46

我来回答

2个回答

热心网友 时间:2023-11-07 15:49

内存角度来看,函数的参数是要入栈的,栈区大小决定了参数的个数。一般C语言程序运行时默认1M的栈空间,以int类型的参数来看,1M=1024KB=1024*1024字节,32位系统中int类型占4个字节,所以理论上一个函数最多有262144个int类型的参数。实际中要远远小于这个数,因为应用程序中的局部变量都需要占用栈空间。

热心网友 时间:2023-11-07 15:49

一个函数的参数的数目没有明确的*,但是参数过多(例如超过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
姐妹们,哥伦比亚的徒步鞋怎么样?下个月就要去吴越古道户外徒步旅行... 徒步装备选哪个牌子好 徒步小白上线!想问问大神们徒步鞋哥伦比亚户外活动性能如何?方便吗? 去医院怎么检查自己缺钙和缺维生素? 查缺钙做什么检查 骨骼缺钙怎么检查 检查缺钙查什么 joryaweekend是什么牌子 剪映在那里修改视频尺寸 剪映如何修改视频画面尺寸 修改视频画面尺寸方法分享 怎样给移动硬盘加密,急!!! 电脑里经常会存储着重要文件,对这些文件怎么进行加密? 硬盘加密的磁盘扇区数据加密 怎么给文件夹加密呢? 被盗了怎么办怎么找回来? 被盗了怎么办怎么找回来? 本科专业与专科专业差别是什么?是本科有的专科都有还是? 被盗了怎么办? 被盗了还改了密码怎么办? 高考后选专业什么是本科什么是专科?为什么可以直接考研究生? 被盗了怎么办? 汽车维修有本科专业吗?还是只有专科有? 被盗了,也被改了,怎么办? 有哪些专业大专不具备,只有本科才有的? 哪些专业专科有而本科没? 自考专科和本科都分别有什么专业呢?请高手帮我都列出来,谢谢 被盗了封了怎么办? 被盗了封了怎么办? 被盗了怎么办怎么找回来? 被盗了怎么办怎么找回来? c语言,函数中定义的参数叫什么,调用的参数呢 c语言中用函数做参数怎么用 c语言函数中的参数 C语言关于函数参数的问题 c语言中,带参数的主函数,如何传递参数给它? c语言的函数参数中 &与* 光污染的基本定义 光污染的原因是什么 如何治理光污染 防止光污染的两条措施 所谓机箱光污染是指什么 小区旁边商场广告屏幕产生光污染,影响睡眠怎么办? 美的热水器6L用了三年,没维修过,买出去值200元吗 有些家长让孩子和富人的孩子做朋友,你怎么看? 贫富差距大的人适合做朋友吗? 美的6L烟道式热水器 美的6L烟道式热水器打不着火是什么原因。电量,煤气充足 有钱人和没钱人能做朋友吗 不可否认有 但是我觉的少吧 我有个从小玩到大的朋友,认识10年至少,我今年16,他18,他人很好,家里钱很多,我一直当他是最好的朋友 我家买了一个6O升的美的热水器一天能用多少电