首页 > 其他分享 >c语言 函数参数个数影响

c语言 函数参数个数影响

时间:2023-11-16 19:33:22浏览次数:35  
标签:E8% 语言 int E5% 个数 函数参数 参数 https 函数

参考:
https://blog.csdn.net/Cheatscat/article/details/79306021
https://blog.csdn.net/Dr_Haven/article/details/89383342

一个函数的参数的数目过多(尤其是超过8个)显然是一种不可取的编程风格。参数的数目直接影响调用函数的速度,参数越多,调用函数越慢。参数的数目少,程序就显得精练、简洁,这有助于检查和发现程序中的错误。
如果一个函数的参数超过4个,就该考虑该函数是否编写得当。特别是嵌入式软件开发中,APCS规定的寄存器使用,R0~R3用来传递函数的参数。当参数个数超过4个时需要借助堆栈来传递参数。
如果不得不使用很多参数,可以定义一个结构体来容纳这些参数。

另一个参考:
https://wenku.baidu.com/view/e4256b69757f5acfa1c7aa00b52acfc789eb9f0a.html?wkts=1700133322987&bdQuery=c%E8%AF%AD%E8%A8%80+%E5%87%BD%E6%95%B0%E5%BD%A2%E5%8F%82%E5%A4%9A+%E4%BC%9A%E5%AF%BC%E8%87%B4%E6%85%A2%E5%90%97

意思如果 虽然使用结构体了,但是函数中将结构体变量赋予了新的临时变量,也会降低速度
例如

int func(int a, int b , struct * p){
  int c = p->para1;
  int d = p->para2;
  int e = p->para3;
  int f = p->para4;
  ....
}

这种,最好是直接调用。(编译器会自己优化吗?)

标签:E8%,语言,int,E5%,个数,函数参数,参数,https,函数
From: https://www.cnblogs.com/Nicoooolas/p/17837102.html

相关文章

  • python语言合法命名规则:my_first_python_program
    示例示例Python语言合法命名规则:命名只能使用字母、数字和下划线,不能使用其他符号;Python语言合法命名规则:1.命名只能使用字母、数字和下划线,不能使用其他符号;2.不能以数字开头;3.不能使用Python关键字;4.命名应该有意义,尽量不要使用缩写;5.命名应该具有可读性,尽量使用驼峰命名法,......
  • 智能语音和自然语言处理技术
    一、定义智能语音和自然语言处理技术是指通过计算机技术实现人机交互的一种技术。它可以让计算机和人类之间进行自然而流畅的交流,从而实现更高效、更便捷、更智能的信息交流和处理。智能语音和自然语言处理技术主要包括语音识别、语音合成、自然语言理解、自然语言生成、文本分类、......
  • c语言学习(文件)练习43
    需求:将10000以二进制的形式存入文件中#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){ inta=10000; FILE*pf=fopen("D:\\桌面\\test.txt","wb"); fwrite(&a,1,1,pf); fclose(pf); pf=NULL; return0;} ......
  • 随机产生n个数的排列(Fisher-Yates洗牌算法)
    #include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;inta[N];//Fisher-Yates洗牌算法voidshuffle(intn){srand(time(NULL));for(inti=n;i>1;i--){intj=rand()%i+1;swap(a[i],a[j]);}......
  • iframe本身就不是动态语言,样式和脚本都需要额外导入.iFrame的本质是内联框架的缩写,它
    以下哪个选项的描述是错误的Aiframe是用来在网页中插入第三方页面,早期的页面使用iframe主要是用于导航栏这种很多页面都相同的部分,这样在切换页面的时候避免重复下载Biframe的创建比一般的DOM元素慢了1-2个数量级Ciframe标签会阻塞页面的的加载Diframe本质是动态语言的Inc......
  • 在C#语言里对NULL的简化赋值
     1、NULL合并操作符(??)null合并操作符(??)是一个简写操作符,用于在左侧对象不为null时返回左侧值,在左侧对象为null时返回右侧值。当您在判断当前对象值是否null值并且赋值新对象需要简写时,此操作符非常有用。stringname=null;stringresult=name??"Unknown";Console.......
  • go语言和redis实现发邮件
    如何使用Go语言和Redis实现邮件群发原创 磊丰 Go语言圈 2023-10-3108:30 发表于中国香港收录于合集#学Go语言哪些事儿236个MySQL大牛带你全面剖析与系统梳理数据库(mysql等)知识分享,总结数据库技巧和方法,提升你的技术技能。45篇原创内容公众号G......
  • C语言劳动节祝福程序代码
    帮您编写一段祝福程序代码,以下是一个400字以上的C语言劳动节祝福程序代码示例:#include<stdio.h>intmain(){//定义劳动节祝福语char*greetings[]={"在劳动节来临之际,向辛勤工作的您致以最诚挚的祝福!","感谢您为国家、为社会做出的无私贡献,祝......
  • 大语言模型量化方法对比:GPTQ、GGUF、AWQ
    在过去的一年里,大型语言模型(llm)有了飞速的发展,在本文中,我们将探讨几种(量化)的方式,除此以外,还会介绍分片及不同的保存和压缩策略。说明:每次加载LLM示例后,建议清除缓存,以防止出现OutOfMemory错误。delmodel,tokenizer,pipeimporttorchtorch.cuda.empty_cache()如......
  • 最新版本的AndroidStudio新建Android项目时设置语言为java
    我们之前用AndroidStudio新建项目时是这样的 选择EmptyActivity,下一步 怎么没了语言选项了,java呢?改为EmptyViewsActivity这个就好了 ......