山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
结构体传参
struct S有一个int data 它有一千个元素
然后struct S 创建了一个s给它初始化了 如果想把s的赋值打印
可以把s直接传给Printf 1 是传结构体的方式 也可以穿s的地址给print 2
结构体在传参的时候 可以传结构体本身 也可以传结构体的地址哪他们两个哪个更好呢
如果是传结构体本身 它本身占了很多空间了 再给它传过去 也需要占用很大的空间 所以这样传就比较浪费空间
如果选用传地址的方式 一个指针是4个字节 最大也就是八个字节 然后上面接收的话也只占用四个字节 然后它也可以通过ps这个指针找到s
所以他们两个相比传地址的方式更好点 不仅省空间 还可以方便查找
总结
函数传参的时候,参数是需要压栈,会有时间和空间上的系统开销。
如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。
结论
结构体传参的时候,要传结构体的地址。