libft/srcs/ft_memcpy64.c

25 lines
547 B
C

#include <stddef.h>
#include <stdint.h>
void *ft_memcpy64(void *dst, const void *src, size_t n) {
size_t i;
uint64_t *lp_dst;
const uint64_t *lp_src;
unsigned char *bp_dst;
const unsigned char *bp_src;
lp_dst = (uint64_t *)dst;
lp_src = (const uint64_t *)src;
for (i = 0; i < n / 8; i++) {
lp_dst[i] = lp_src[i];
}
bp_dst = (unsigned char *)(lp_dst + i);
bp_src = (const unsigned char *)(lp_src + i);
for (i = 0; i < n % 8; i++) {
bp_dst[i] = bp_src[i];
}
return dst;
}