gpt4 book ai didi

c - 普通数组声明和在结构内声明的数组之间的内存和效率差异

转载 作者:太空狗 更新时间:2023-10-29 15:20:10 27 4
gpt4 key购买 nike

在 C 语言中声明数组时,通常可以这样声明:

int arr[10]

或者它们也可以在像这样的结构中声明:

struct structArr{
int sArr[10];
}s1;
  1. 当使用 s1.sArr[] 而不是 arr[] 时,是否会有任何内存或空间权衡,如果是,为什么?
  2. 是否有任何一种形式比另一种形式更高效、更快速?

我个人认为 arr[] 会比 s1.sArr[] 快,但我不知道我是否正确而且我不知道'有一个技术答案。

最佳答案

我不认为会有任何不同,不。

编译器“知道”sArr 字段相对于 s1 基地址的偏移量为 0,因此我猜访问可以使用确切的方式完成相同的指令序列。

当然,将数组包装在一个结构中可以按值分配和传递/返回它,这是一个很好的好处。

关于c - 普通数组声明和在结构内声明的数组之间的内存和效率差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14153784/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com