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;