【发布时间】:2016-03-03 09:35:21
【问题描述】:
我需要移动字节缓冲区的内容。自然地,我开始写memcpy,但后来意识到它可能有restrict 说明源和目标。我的实现(MSVC 2013)似乎没有。 Cppreference 列出了两个memcpy 版本,有和没有restrict,但我不明白——我不认为这些是重载,而且我不清楚编译器如何正确确定选择哪一个。
另一方面,memcpy 函数可以在运行时分析地址和count 参数以确定地址范围是否重叠。
那么,是否允许使用重叠参数调用memcpy?如果没有,有没有比普通for更好的方法来执行这个操作?
【问题讨论】:
-
memcpy的文档非常明确,不是吗?