【发布时间】:2011-12-31 04:50:04
【问题描述】:
什么是序列副本?深拷贝和浅拷贝有区别吗?
根据Duff's device下的wiki条目,传统上实现为:
do { //count > 0 assumed
*to = *from++; //Note that the 'to' pointer is NOT incremented
} while(--count > 0);
然后它记下,说
请注意,
to不会递增,因为 Duff 正在复制到单个内存映射输出寄存器。
我不太明白这个注释。
如果to 指针不递增,那么循环的意义何在?为什么那么它被实现为:
*to = from[count-1]; //does it not do the same thing?
我怀疑这与serial copy的定义有关。
我们如何为to 分配内存以便循环产生一些影响?
【问题讨论】:
-
可能是 FIFO BUFFER 的副本。例如。设备的硬件缓冲区。
标签: c++ memory-mapping