怎么可能写得更简洁但不使用 memcpy?
memcpy(pDest, pSrc, 4);
for (int i = 0; i < 4; i++)
pDest[i] = pSrc[i];
因为调用 memcpy 有时不是最优的
以下是极好的评论,但由于没有其他人发布最明显的答案:
现代编译器非常擅长优化memcpy
. 它可以内联它,或者对不同的数据使用不同的版本。
首先测量您的代码性能并据此得出结论。如果memcpy
似乎是您代码的瓶颈,您可能需要重新考虑您的算法。
通过向您介绍自己的替代方案,memcpy
可能会引入更大/更慢的代码,或者更糟糕的是:不可移植的代码可能会在最意想不到的时候中断。
#include <cstdint>
*(uint32_t*)pDest = *(uint32_t*)pSrc;