www.delorie.com/archives/browse.cgi | search |
Xref: | news2.mv.net comp.os.msdos.djgpp:4945 |
From: | davis AT space DOT mit DOT edu (John E. Davis) |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: Speed optimization: memcpy() or for loop ?? |
Date: | 13 Jun 1996 18:41:21 GMT |
Organization: | Center for Space Research |
Lines: | 35 |
Message-ID: | <slrn4s0o6h.71s.davis@aluche.mit.edu> |
References: | <4pmlrp$p7u AT crc-news DOT doc DOT ca> <4pmscu$nrt AT rs18 DOT hrz DOT th-darmstadt DOT de> <4pn7dp$2d2 AT crc-news DOT doc DOT ca> |
Reply-To: | davis AT space DOT mit DOT edu |
NNTP-Posting-Host: | aluche.mit.edu |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
On 12 Jun 1996 19:56:41 GMT, Richard Young <richard DOT young AT crc DOT doc DOT ca> wrote: : >for(i=n,px=x,py=y; i ; i--) *py++=*px++; I would write this as: pxmax = px + n; while (px < pxmax) *py++ = *px++; or if the address space is flat: diff = py - px; pxmax = px + n; while (px < pxmax) { *(px + diff) = *px; px++; } Also, if n is a multiple of 2, one could do: diff = py - px; pxmax = px + n; while (px < pxmax) { *(px + diff) = *px; px++; *(px + diff) = *px; px++; } -- John E. Davis Center for Space Research/AXAF Science Center 617-258-8119 MIT 37-662c, Cambridge, MA 02139 http://space.mit.edu/~davis
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |