如何才能写出更简洁却不使用memcpy?复制一小部分字节
memcpy(pDest, pSrc, 4);
for (int i = 0; i < 4; i++)
pDest[i] = pSrc[i];
,因为调用的memcpy是不是最佳有时
如何才能写出更简洁却不使用memcpy?复制一小部分字节
memcpy(pDest, pSrc, 4);
for (int i = 0; i < 4; i++)
pDest[i] = pSrc[i];
,因为调用的memcpy是不是最佳有时
对于C++:
std::copy(std::begin(pSrc), std::end(pSrc), std::begin(pDest));
这个算法通常被优化来调用'memmove'来获得可复制的类型。 – Simple
这里有很好的意见,但由于没有人尚未发布的最明显的答案:
现代编译器在优化memcpy
方面非常出色。它可以内联它,或者为不同的数据使用不同的版本。
首先测量您的代码性能,并根据此结果得出结论。 如果memcpy
似乎是您的代码的瓶颈,您可能需要重新考虑您的算法 。
通过引入您自己的memcpy
的替代方法,您可能会引入更大/更慢的代码, 或更糟:不可移植的代码,可能在最不可预料的情况下中断。
哪种语言,c或C++? – user1810087
什么是“不理想”?慢?太大? – RvdK
也许会得到一个编译器,其中调用memcpy总是最佳... – PlasmaHH