如何写这个更简洁但不使用memcpy?
memcpy(pDest, pSrc, 4);
for (int i = 0; i < 4; i++)
pDest[i] = pSrc[i];
因为有时候调用memcpy不是最佳的
答案 0 :(得分:3)
以下是优秀评论,但由于还没有人发布最明显的答案:
现代编译器非常适合优化memcpy
。它可以内联或使用
不同版本的不同数据。
首先衡量您的代码性能并根据该结果得出结论。
如果memcpy
似乎是您代码的瓶颈,您可能需要重新考虑
你的算法。
通过引入自己的memcpy
替代方案,您可能会引入更大/更慢的代码,
或更糟:不可移植的代码,可能会在最不期望的时候破坏。
答案 1 :(得分:2)
#include <cstdint>
*(uint32_t*)pDest = *(uint32_t*)pSrc;
答案 2 :(得分:0)
for c ++:
std::copy(std::begin(pSrc), std::end(pSrc), std::begin(pDest));