scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

memmove.c (259B)


      1 #include <string.h>
      2 
      3 #undef memmove
      4 
      5 void *
      6 memmove(void *s1, const void *s2, size_t n)
      7 {
      8 	char *d = s1;
      9 	const char *s = s2;
     10 
     11 	if (d < s) {
     12 		while (n-- > 0)
     13 			*d++ = *s++;
     14 	} else {
     15 		s += n-1, d += n-1;
     16 
     17 		while (n-- > 0)
     18 			*d-- = *s--;
     19 	}
     20 	return s1;
     21 }