【发布时间】:2013-06-17 06:18:48
【问题描述】:
我有一个二维整数数组InArray[2][60] 携带short 2 个 LS 字节的数据和 2 个 MS 字节的位字段数据。请建议一种更快的方法来提取short 数据并将其复制到short OutArray[60],在memcpy() 的行上。我认为遍历每个项目并不是这样做的最佳方法。
TIA
编辑:添加代码 sn-p
int InArray[2][60];
short OutArray[60];
for (int i=0; i < 60;i++)
{
OutArray[i] = (short)(InArray[0][i] & 0xffff);
}
有没有更好,可能更快的方法来做到这一点
【问题讨论】:
-
您使用的某些术语我不清楚。
-
您是否对数组进行迭代测试并发现它的性能不够好?
-
是
short InArray[2][60]或int InArray[2][60]。如果是后者,还有一些您没有告诉我们的事情,因为您拥有的数据是所需数据的两倍。 -
@Antonio 位域是您可以在 C/C++ 中执行的操作。我建议谷歌搜索。 LS 和 MS 通常表示最不重要和最重要。
-
@Bleamer 是什么让您认为
memcpy()本身不使用循环?它的实现者不能假设他们被要求复制的任何数据块都适合寄存器。
标签: c arrays optimization