我反思memcpy.
我知道memcpy用于将变量复制到变量.
但是使用它并不是更好:( 例如)
int a = 5;
int b;
b = a;
Run Code Online (Sandbox Code Playgroud)
而不是memcpy?
或使用std::move替代memmove?
Memcpy并且Memmove没有过时/缓慢的功能(也许这些功能来自C)?为了降低重要性,优点是:
memcpy并且memmove是类型不可知的,因此它们可用于绕过严格的别名限制.
memcpy并且memmove不需要对齐,尽管它们在数据对齐时可能运行得更快.
memcpy可能更快,因为它可以一次复制多个元素.std::is_trivially_copyable但是,对于类型特征,也std::copy应该这样做.
当然,它们的缺点是只使用简单的可复制类型,并且只使用指针,而不是迭代器.但它们在C++代码中具有明确的用途,例如,当从网络数据包或文件块中提取未对齐数据,或使用位技巧实现浮点函数的近似时.
| 归档时间: |
|
| 查看次数: |
746 次 |
| 最近记录: |