ストロヴストルップのバージョン
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2016/04/02 13:39 UTC 版)
「Duff's device」の記事における「ストロヴストルップのバージョン」の解説
本来のコードは(メモリにマップされた)1個のレジスタへのコピーであった。メモリからメモリへのコピーをするには to ポインタを以下のようにインクリメントしなければならない。 *to++ = *from++; この修正版のコードは、ビャーネ・ストロヴストルップの著書 The C++ Programming Language で「このコードは何をしている?」という練習問題として登場した。これは初心者がメモリマップされた出力レジスタを知らない可能性があると判断したためだろう。しかし、このバージョンのコードはそれほど有用ではない。というのも標準Cライブラリには十分に最適化されたメモリコピー関数 (memcpy) が用意されているからである。そちらのコードの方がアーキテクチャ依存の最適化を施していて、ずっと高速に動作する。
※この「ストロヴストルップのバージョン」の解説は、「Duff's device」の解説の一部です。
「ストロヴストルップのバージョン」を含む「Duff's device」の記事については、「Duff's device」の概要を参照ください。
- ストロヴストルップのバージョンのページへのリンク