memcpy()
和memmove()
之间的The key difference是当源和目标重叠时memmove()
可以正常工作。当缓冲区肯定不会与memcpy() is preferable重叠时,因为它可能更快。
这让我感到困扰。是微优化还是memcpy()
更快时有真正的重要例子,以便我们真的需要使用memcpy()
而不是到处都坚持使用memmove()
吗?
最佳答案
充其量,调用memcpy
而不是memmove
将保存指针比较和条件分支。对于大型副本,这是完全无关紧要的。如果您要进行许多小拷贝,则可能需要测量差异。那是唯一可以知道它是否重要的方法。
绝对是微优化,但这并不意味着您可以轻易证明它是安全的时就不应该使用memcpy
。过早的悲观化是邪恶的根源。
关于c++ - 当memcpy()比memmove()更快时,真正重要的情况是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3701025/