/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_memcpy.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: thrieg +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/14 15:52:40 by thrieg #+# #+# */ /* Updated: 2025/02/16 19:04:07 by thrieg ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" void *ft_memcpy(void *dest, const void *src, size_t n) { char *str; unsigned long long *str_packed; char *str_src; unsigned long long *str_src_packed; str_packed = (unsigned long long *)dest; str_src_packed = (unsigned long long *)src; while (n >= sizeof(unsigned long long)) { *str_packed++ = *str_src_packed++; n -= sizeof(unsigned long long); } str = (char *)str_packed; str_src = (char *)str_src_packed; while (n > 0) { *str++ = *str_src++; n--; } return (dest); }