| 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 |