memmovememcpy有什么区别?您通常使用哪一种?

最佳答案

使用memcpy,目标根本不会与源重叠。使用memmove可以。这意味着memmove可能比memcpy稍微慢一点,因为它无法做出相同的假设。

例如,memcpy可能总是将地址从低到高复制。如果目标在源之后重叠,则意味着某些地址将在复制之前被覆盖。在这种情况下,memmove将检测到该错误并向另一个方向复制-从高到低。但是,对此进行检查并切换到另一种算法(可能效率较低)需要花费时间。

关于c - memmove和memcpy有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1201319/

10-11 15:25