我正在学习 C 并想询问最佳实践。
这里有两个实现(衬衫是结构):
实施1:
void printShirt(shirt shirt){
printf("(%d , %s)",shirt.size,shirt.color);
}
void printShirts(shirt * shirts, int nbShirts){
int i;
for(i=0;i<nbShirts;i++) printShirt(shirts[i]);
printf("\n");
}
实施2:
void printShirt(shirt * shirt){
printf("(%d , %s)",shirt->size,shirt->color);
}
void printShirts(shirt * shirts, int nbShirts){
int i;
for(i=0;i<nbShirts;i++) printShirt(&shirts[i]);
printf("\n");
}
如果我是正确的(?),在实现 1 中,每件衬衫的数据在打印之前从堆复制到堆栈。但这在实现 2 (?) 中不会发生。
对于大型阵列和结构,这可能会产生影响吗?是否有一些最佳实践可以遵循?