ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
12 июля
411224
Hobo (21.05.2013 10:32 - 12:27, просмотров: 14213)
GCC, лыжи не едут. Есть перекрасно работающая функция обработки массива. При попытке объявить локальные переменные static - время исполнения увеличивается в 7-10 раз. Почему и что делать? Попытка сделать static переменные - первый шаг к тому чтобы переделать функцию так, чтобы не зависать в ней до окончания копирования, а периодически заходя, копировать по кусочку данных. На текущий момент - вызывается один раз. void copyData ( char* src, char* dest) { char *ps; //если сделать static - в разы увеличивается время char *pd; //если сделать static - в разы увеличивается время unsigned long dataSize; char *lastAddr; dataSize = *(unsigned long *)src; //первые 4 байта - размер данных if (dataSize == 0) return; //нечего копировать lastAddr = src + 4 + dataSize; ps = src+4; // указатель по источнику pd = dest; // указатель по приемнику while (ps < lastAddr) { *pd++ = *ps++; } }