- 529 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:40:41 ]
- do { /* count > 0 と仮定 */
*to = *from++; /* to がインクリメントされていないことに注意 */ } while (--count > 0); これを、下のようにして最適化か。こう書いてコンパイル通る ことすら知らなかったわw しかし昔memcpy実装させられたとき、条件判定へらす努力したり ワード単位でコピーしたりしたんだが、標準で用意されて いたARMのlibcに速度が遠くおよばなくて愕然とした記憶があるなw switch (count % 8) /* count > 0 とする */ { case 0: do { *to = *from++; case 7: *to = *from++; case 6: *to = *from++; case 5: *to = *from++; case 4: *to = *from++; case 3: *to = *from++; case 2: *to = *from++; case 1: *to = *from++; } while ((count -= 8) > 0); }
|

|