最近我查看了一些C代码,发现了类似于以下内容:
struct foo {
int some_innocent_variables;
double some_big_array[VERY_LARGE_NUMBER];
}
Run Code Online (Sandbox Code Playgroud)
几乎完全是C中的一个新手,我几乎完全是一个新手,我是否正确地认为这个结构因使用数组成员而在使用空间方面效率极低?将此结构作为参数传递给函数时会发生什么?它是否完整地复制到堆栈中,包括完整的数组?
在大多数情况下,double *some_pointer
改为更好吗?
如果你通过值是,它将复制一切.但这就是指针存在的原因.
//Just the address is passed
void doSomething(struct foo *myFoo)
{
}
Run Code Online (Sandbox Code Playgroud)