最近我查看了一些 C 代码,发现了与以下内容等价的内容:
struct foo {
int some_innocent_variables;
double some_big_array[VERY_LARGE_NUMBER];
}
我几乎(但不完全)几乎完全是 C 语言的新手,我认为这个结构由于数组成员而在空间使用方面效率极低,这是否正确?当这个结构作为参数传递给函数时会发生什么?它是否完整地复制到堆栈中,包括整个数组?
在大多数情况下,使用 double *some_pointer
会更好吗?
最佳答案
如果你按值传递 yes 它将复制所有内容。 但这就是指针存在的原因。
//Just the address is passed
void doSomething(struct foo *myFoo)
{
}
关于c - C中的数组成员结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3704244/