【发布时间】:2011-07-19 19:16:36
【问题描述】:
我正在为微控制器使用 C 语言的 FFT 算法,在决定是将输入数据的实部和虚部仅存储在结构数组中还是使用指向结构数组的指针时遇到了麻烦.我面临着相互冲突的要求,即代码必须在少量内存中运行,而且还要尽可能快。我相信指向结构的指针数组会有更大的内存开销,但我的代码中有一行基本上如下所示:
for (uint8_t i = 0; i < RECORD_SIZE; i++)
{
uint8_t decimateValue = fft_decimate(i);
fftData[i]->realPart = fftTempData[decimateValue]->realPart;
fftData[i]->imPart = fftTempData[decimateValue]->imPart;
}
我在想,如果我在上面的示例中使用指向结构的指针数组,那么编译的代码会更快,因为它只是重新洗牌指针,而不是实际将两个数据结构之间的所有数据复制为结构数组实现将。如果上面的代码部分运行得尽可能快,我愿意牺牲一些额外的内存。感谢您的任何建议。
【问题讨论】:
-
为什么不直接运行两个版本的代码,看看哪个更快?
标签: c data-structures signal-processing