原因:函数传参的时候,参数是需要压栈的。 如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。
结论:结构体传参的时候,要传结构体的地址。
拓展:
这里我们说到了一个概念:压栈
之前的学习知道了,程序内存主要分为三个区域,栈区、堆区、静态区
栈区:局部变量、函数的形式参数、函数调用也开辟空间
堆区:动态内存分配、malloc / free、realloc、calloc
静态区:全局变量、静态变量
画图理解:
栈:
①插入一个元素-- - 压栈
② 删除一个元素-- - 出栈
栈的特点:先进后出,后进先出。