37 lines
388 B
C
37 lines
388 B
C
#include "string.h"
|
|
|
|
void *
|
|
memset(void *v, int c, size_t n)
|
|
{
|
|
char *p;
|
|
int m;
|
|
|
|
p = v;
|
|
m = n;
|
|
while (--m >= 0)
|
|
*p++ = c;
|
|
|
|
return v;
|
|
}
|
|
|
|
void *
|
|
memcpy(void *dst, const void *src, size_t n)
|
|
{
|
|
const char *s;
|
|
char *d;
|
|
|
|
s = src;
|
|
d = dst;
|
|
|
|
if (s < d && s + n > d) {
|
|
s += n;
|
|
d += n;
|
|
while (n-- > 0)
|
|
*--d = *--s;
|
|
} else {
|
|
while (n-- > 0)
|
|
*d++ = *s++;
|
|
}
|
|
|
|
return dst;
|
|
} |