1

memcpyを使用せずに、これをより簡潔に記述するにはどうすればよいですか?

memcpy(pDest, pSrc, 4);

for (int i = 0; i < 4; i++)
   pDest[i] = pSrc[i]; 

memcpy の呼び出しが最適でない場合があるため

4

2 に答える 2

3

ここに素晴らしいコメントがありますが、他の誰もまだ最も明白な回答を投稿していないため:

最新のコンパイラは最適化に優れていmemcpyます。インライン化するか、データごとに異なるバージョンを使用する場合があります。

最初にコードのパフォーマンスを測定し、それに基づいて結論を導き出します。コードのボトルネックと思われる場合memcpyは、アルゴリズムを再検討することをお勧めします。

独自の代替手段を導入するmemcpyと、コードが大きく/遅くなるか、さらに悪いことに、予期しないときに壊れる可能性のある移植性のないコードが導入される可能性があります。

于 2013-10-07T11:38:08.013 に答える
2
#include <cstdint>

*(uint32_t*)pDest = *(uint32_t*)pSrc;
于 2013-10-07T10:49:14.917 に答える