ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
411278 Топик полностью
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; }
Будь ты проклят, Перри-Утконос!