在 Z80 机器代码中,一种将缓冲区初始化为固定值的廉价技术,例如所有空白。所以一段代码可能看起来像这样。
LD HL, DESTINATION ; point to the source
LD DE, DESTINATION + 1 ; point to the destination
LD BC, DESTINATION_SIZE - 1 ; copying this many bytes
LD (HL), 0X20 ; put a seed space in the first position
LDIR ; move 1 to 2, 2 to 3...
结果是 DESTINATION 处的内存块完全被空白填充。我已经尝试过 memmove 和 memcpy,但无法复制这种行为。我希望 memmove 能够正确地做到这一点。
为什么 memmove 和 memcpy 会这样?
有没有合理的方法来做这种数组初始化?
我已经知道 char array[size] = {0} 用于数组初始化
我已经知道 memset 将为单个字符完成这项工作。
这个问题还有哪些其他方法?