Что такое серийный копия? Отличается ли он от глубокого и мелкого копирования?
Согласно записи вики под Устройство Даффа , оно традиционно реализуется как:
do { //count > 0 assumed
*to = *from++; //Note that the 'to' pointer is NOT incremented
} while(--count > 0);
И тогда он делает заметку, говоря:
Обратите внимание, что to
не увеличивается, поскольку Дафф копировал в один отображенный в память выходной регистр.
Я не совсем понял эту записку.
Если указатель to
не увеличивается, то в чем смысл цикла? Почему тогда это реализовано так:
*to = from[count-1]; //does it not do the same thing?
Я подозреваю, что это как-то связано с определением serial copy.
Как мы можем выделить память для to
, чтобы цикл имел какое-то значение?