c语言 函数参数个数影响

参考:
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;
  ....
}

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

posted @ 2023-11-16 19:29  Nichoooolas  阅读(329)  评论(0编辑  收藏  举报