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/

10-13 06:11