效率:8个数组与多维数组

时间:2011-11-02 15:03:22

标签: c pic microchip

什么更有效? 8个数组int8 myArrayx[100],或多维int8 myArray[8][100]?我正在使用Microchip PIC微控制器的CCS编译器,我需要在缓冲区中尽可能快地写入,这就是我提问的原因。

3 个答案:

答案 0 :(得分:6)

我不得不认为多维数组会更快。将这些数组放入连续空间的内存中你有一个更好的机会(可能有保证?),而你不能确定8个单独的数组会在内存中“关闭”在一起 - 这会损害你的引用位置。

答案 1 :(得分:3)

这取决于您最常访问的项目。 但可能它并不重要。唯一不同的是底层内存映射分配。

答案 2 :(得分:3)

取决于数组的分配方式。如果在堆上,那么单个multidim。由于引用的局部性,数组会因为许多目的而更快,你可以一次性分配数组,这样更简单并且开销更少。

如果在堆栈或static上,生成的实际二进制代码可能完全相同。

(我不确定你的设备中确实有一堆,但我想我还是会提到它;)