1

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

4

3 回答 3

6

我不得不认为多维数组会更快。您有更好的机会(可能保证?)将这些数组放置在连续空间中的内存中,而您不能确定 8 个单独的数组在内存中是否会“靠近”在一起——这会损害您的参考位置。

于 2011-11-02T15:14:35.377 回答
3

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

于 2011-11-02T15:07:05.987 回答
3

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

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

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

于 2011-11-02T15:07:34.083 回答