Я работаю над алгоритмом FFT в C для микроконтроллера , Я сталкиваюсь с противоречивыми требованиями, что код должен выполняться в небольшом объеме памяти, и при этом быть максимально быстрым. Я полагаю, что массив указателей на структуры будет иметь несколько больший объем памяти, но в моем коде есть строка, похожая на следующую:
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;
}
Я думаю, что если я буду использовать массив указателей для структур, как в приведенном выше примере, то скомпилированный код будет быстрее, поскольку он просто переставляет указатели, а не копирует все данные между двумя структурами данных как реализация массива структур будет. Я готов пожертвовать некоторой дополнительной памятью, если приведенный выше фрагмент кода работает максимально быстро. Спасибо за любой совет.