什么更有效? 8个数组int8 myArrayx[100]
,或多维int8 myArray[8][100]
?我正在使用Microchip PIC微控制器的CCS编译器,我需要在缓冲区中尽可能快地写入,这就是我提问的原因。
答案 0 :(得分:6)
我不得不认为多维数组会更快。将这些数组放入连续空间的内存中你有一个更好的机会(可能有保证?),而你不能确定8个单独的数组会在内存中“关闭”在一起 - 这会损害你的引用位置。
答案 1 :(得分:3)
这取决于您最常访问的项目。 但可能它并不重要。唯一不同的是底层内存映射分配。
答案 2 :(得分:3)
取决于数组的分配方式。如果在堆上,那么单个multidim。由于引用的局部性,数组会因为许多目的而更快,你可以一次性分配数组,这样更简单并且开销更少。
如果在堆栈或static
上,生成的实际二进制代码可能完全相同。
(我不确定你的设备中确实有一堆,但我想我还是会提到它;)