在C语言(以及Matlab等高级语言)中,如果想重复使用存储在数组中的(常量)值,最好将它存储在一个单独的变量中,即:
double array [] = {1,2,3,4,5,...};
double quantity = array [3];
必要时使用quantity
,还是使用array[3]
速度一样快?
我问的原因是array[3] = *(array+3)
因此必须执行加法操作才能从数组中读取,而quantity
可以直接读取。
答案 0 :(得分:0)
我不确切知道改进了多少,但当您a[3]
*(a+3)
时,pow()
可以通过以下方式找到:
在研究处理器的架构(如MIPS)时,这一切都已成为现实。
所以,像你一样存储变量总是更好。
虽然现代编译器可能支持使用Cache来存储常用数据,而不是每次都访问内存。
我想从math.h
添加double begin = clock();
for(long long int i=0;i<pow(10,9);++i);
printf("%lf",(clock()-begin)/CLOCKS_PER_SEC);
的示例。
pow(10,9)
如果首次存储{{1}},则上述代码可能会略微提升性能。