Добрый день, дорогие друзья...
У меня тут возник вопрос... Наверное больше даже из любопытства
Копировал тут из массива в массив элементы... и созрел вопрос... как будет работать быстрее?
Сначала приведу оба варианта упрощенных донельзя функций , а потом поясню
void F(char* buf_, int count_, int from_ = 0)
{
for(int i=0; i<count_; i++)
{
buf[i] = buf_[i+from_];
}
}
void F(char* buf_, int count_, int from_ = 0)
{
for(int i=0; i<count_; i++, from_++)
{
buf[i] = buf_[from_];
}
}
Две почти одинаковые функции по копированию из буфера в буфер... Забудем о всех возможных ошибках переполнения и прочих...
Как буд-то все правильно...
Так вот, что будет шустрее?
Мне вот почему-то кажется что первый вариант менее быстрый...
Если я не ошибаюсь, то в asm есть отдельная команда увеличения на единицу, в случае же сложения мы получим излишнее копирование в регистр...
или может я все позабыл или говорю что-то не так?
Может компилятор нам поможет и все будет работать одинаков?
Растолкуйте
С уважением. Евгений Sqborev