gpt4 book ai didi

c - 使用临时变量或直接从数组更有效?

转载 作者:行者123 更新时间:2023-11-30 18:05:05 25 4
gpt4 key购买 nike

每次使用变量时访问数组是否更有效,或者创建一个临时变量并将其设置到数组中:

例如:

int A; int B; ...etc... int Z;
int *ints = [1000 ints in here];
for (int i = 0; i < 1000; i++) {
A = ints[i];
B = ints[i];
C = ints[i];
...etc...
Z = ints[i];
}

int A; int B; ...etc... int Z;
int *ints = [1000 ints in here];
for (int i = 0; i < 1000; i++) {
int temp = ints[i];
A = temp;
B = temp;
C = temp;
...etc...
Z = temp;
}

是的,这不是我想做的事情,但这是我能想到的最简单的例子。

那么哪个 for 循环使用数组会更快?

最佳答案

没关系;编译器很可能在这两种情况下生成相同的代码(除非您禁用了所有优化)。 (生成的汇编代码可能类似于第二个示例 - 首先,数组元素将被加载到寄存器中,然后,每当需要数组元素时就会使用该寄存器。)采用您认为最易读的样式并且最不容易出错(可能是后一种风格,可以避免重复索引)。

(这假设您没有任何线程或 volatile 变量,以便保证数组元素在循环迭代过程中不会更改。)

关于c - 使用临时变量或直接从数组更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6910758/

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