Nikolay801_ (21.05.2013 13:34, просмотров: 55) ответил Hobo на GCC, лыжи не едут. Есть перекрасно работающая функция обработки массива. При попытке объявить локальные переменные static - время исполнения увеличивается в 7-10 раз. Почему и что делать?
а они Вам точно статические нужны? сделайте отдельно локальные и их используйте в цикле, после цикла копируйте в статические
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; // указатель по приемнику
char *psCopy = ps;
char *pdCopy = pd;
while (psCopy < lastAddr) {
*pdCopy++ = *psCopy++;
}
ps = psCopy;
pd = pdCopy;
}
Будь ты проклят, Перри-Утконос!