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